From 86ce367ba84933177b9d5551c3166e59d442f2d6 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 11 Jul 2021 09:28:22 +1000 Subject: [PATCH 001/168] Fix #1561. --- src/blenderbim/blenderbim/bim/export_ifc.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/export_ifc.py b/src/blenderbim/blenderbim/bim/export_ifc.py index 5f9b35812c..0732cbbbb7 100644 --- a/src/blenderbim/blenderbim/bim/export_ifc.py +++ b/src/blenderbim/blenderbim/bim/export_ifc.py @@ -68,6 +68,8 @@ class IfcExporter: for ifc_definition_id, obj in IfcStore.id_map.items(): try: + if isinstance(obj, bpy.types.Material): + continue self.sync_object_placement(obj) self.sync_object_container(ifc_definition_id, obj) except ReferenceError: From 3614587556d067f1cabe3767ffde264c09316383 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 11 Jul 2021 10:29:19 +1000 Subject: [PATCH 002/168] Fix #1558. New loading bar when importing an IFC. --- src/blenderbim/blenderbim/bim/import_ifc.py | 28 ++++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 57fd668de8..0f0abb7beb 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -159,8 +159,16 @@ class IfcImporter: self.time = time.time() print("{} :: {:.2f}".format(message, time.time() - self.time)) self.time = time.time() + self.update_progress(self.progress + 1) + + def update_progress(self, progress): + if progress <= 100: + self.progress = progress + bpy.context.window_manager.progress_update(self.progress) def execute(self): + bpy.context.window_manager.progress_begin(0, 100) + self.progress = 0 self.profile_code("Starting import process") self.load_diff() self.profile_code("Load diff") @@ -228,6 +236,8 @@ class IfcImporter: self.profile_code("Mesh cleaning") self.set_default_context() self.profile_code("Setting default context") + self.update_progress(100) + bpy.context.window_manager.progress_end() def is_element_far_away(self, element, is_meters=True): try: @@ -546,12 +556,21 @@ class IfcImporter: if not valid_file: return False checkpoint = time.time() - total = 0 + total_created = 0 + approx_total_products = len(self.include_elements) or len(self.file.by_type("IfcElement")) + start_progress = self.progress + progress_range = 85 - start_progress while True: - total += 1 - if total % 250 == 0: - print("{} elements processed in {:.2f}s ...".format(total, time.time() - checkpoint)) + if total_created % 250 == 0: + print( + "{} / ~{} elements processed in {:.2f}s ...".format( + total_created, approx_total_products, time.time() - checkpoint + ) + ) checkpoint = time.time() + self.update_progress( + ((total_created / approx_total_products) * progress_range) + start_progress + ) shape = iterator.get() if shape: product = self.file.by_id(shape.guid) @@ -565,6 +584,7 @@ class IfcImporter: pass else: self.create_product(product, shape) + total_created += 1 if not iterator.next(): break print("Done creating geometry") From b480b4343510e01c3a981944e7816dc3951564aa Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 12 Jul 2021 17:34:35 +1000 Subject: [PATCH 003/168] BIM workspace tool is now no longer wall specific, and adapts to different element types --- .../blenderbim/bim/module/model/__init__.py | 2 +- .../blenderbim/bim/module/model/wall.py | 15 ------- .../blenderbim/bim/module/model/workspace.py | 43 +++++++++++++------ 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 6bf79bfd1d..98cb2da069 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -3,7 +3,7 @@ from . import handler, prop, ui, grid, product, wall, slab, stair, door, window, classes = ( product.AddTypeInstance, - wall.AddWall, + workspace.HotkeyE, wall.JoinWall, wall.AlignWall, wall.FlipWall, diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 98d9f6b691..c6c81f9fd3 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -36,21 +36,6 @@ def mode_callback(obj, data): IfcStore.edited_objs.add(obj) -class AddWall(bpy.types.Operator): - bl_idname = "bim.add_wall" - bl_label = "Add Wall" - bl_options = {"REGISTER", "UNDO"} - join_type: bpy.props.StringProperty() - - def execute(self, context): - return IfcStore.execute_ifc_operator(self, context) - - def _execute(self, context): - props = context.scene.BIMModelProperties - bpy.ops.bim.add_type_instance(ifc_class="IfcWallType", relating_type=int(props.relating_type)) - return {"FINISHED"} - - class JoinWall(bpy.types.Operator): bl_idname = "bim.join_wall" bl_label = "Join Wall" diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index 741276a526..cc58461146 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -1,6 +1,7 @@ import os import bpy from bpy.types import WorkSpaceTool +from blenderbim.bim.ifc import IfcStore class BimTool(WorkSpaceTool): @@ -16,8 +17,8 @@ class BimTool(WorkSpaceTool): bl_keymap = ( # ("bim.wall_tool_op", {"type": 'MOUSEMOVE', "value": 'ANY'}, {"properties": []}), # ("mesh.add_wall", {"type": 'LEFTMOUSE', "value": 'PRESS'}, {"properties": []}), - ("bim.add_wall", {"type": "A", "value": "PRESS", "shift": True}, {"properties": []}), - ("bim.join_wall", {"type": "E", "value": "PRESS", "shift": True}, {"properties": [("join_type", "T")]}), + ("bim.add_type_instance", {"type": "A", "value": "PRESS", "shift": True}, {"properties": []}), + ("bim.hotkey_e", {"type": "E", "value": "PRESS", "shift": True}, {"properties": []}), ("bim.join_wall", {"type": "T", "value": "PRESS", "shift": True}, {"properties": [("join_type", "L")]}), ("bim.join_wall", {"type": "Y", "value": "PRESS", "shift": True}, {"properties": [("join_type", "V")]}), ("bim.flip_wall", {"type": "F", "value": "PRESS", "shift": True}, {"properties": []}), @@ -40,20 +41,38 @@ class BimTool(WorkSpaceTool): ) def draw_settings(context, layout, tool): - props = context.scene.BIMModelProperties row = layout.row(align=True) + props = context.scene.BIMTypeProperties + row.prop(props, "ifc_class", text="") row.prop(props, "relating_type", text="") row.label(text="", icon="BLANK1") row.label(text="", icon="EVENT_SHIFT") row.label(text="Add", icon="EVENT_A") - row.label(text="Extend", icon="EVENT_E") - row.label(text="Butt", icon="EVENT_T") - row.label(text="Mitre", icon="EVENT_Y") - row.label(text="Flip", icon="EVENT_F") - row.label(text="Split", icon="EVENT_S") - row.label(text="", icon="EVENT_X") - row.label(text="", icon="EVENT_C") - row.label(text="", icon="EVENT_V") - row.label(text="Align") + + if props.ifc_class == "IfcWallType": + row.label(text="Extend", icon="EVENT_E") + row.label(text="Butt", icon="EVENT_T") + row.label(text="Mitre", icon="EVENT_Y") + row.label(text="Flip", icon="EVENT_F") + row.label(text="Split", icon="EVENT_S") + row.label(text="", icon="EVENT_X") + row.label(text="", icon="EVENT_C") + row.label(text="", icon="EVENT_V") + row.label(text="Align") + + +class HotkeyE(bpy.types.Operator): + bl_idname = "bim.hotkey_e" + bl_label = "Hotkey E" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + props = context.scene.BIMTypeProperties + if props.ifc_class == "IfcWallType": + bpy.ops.bim.join_wall(join_type="T") + return {"FINISHED"} From 7456c270ff0e181e796066e72c88a88a80356e8f Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 12 Jul 2021 22:10:10 +1000 Subject: [PATCH 004/168] You can now extend a wall to your cursor location instead of another wall --- .../blenderbim/bim/module/model/wall.py | 46 +++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index c6c81f9fd3..25ec66c86b 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -50,7 +50,13 @@ class JoinWall(bpy.types.Operator): for obj in selected_objs: DumbWallJoiner(obj, obj).unjoin() return {"FINISHED"} - if len(selected_objs) < 2 or not context.active_object: + if not context.active_object: + return {"FINISHED"} + if len(selected_objs) == 1: + DumbWallJoiner(context.active_object, target_coordinate=context.scene.cursor.location).extend() + IfcStore.edited_objs.add(context.active_object) + return {"FINISHED"} + if len(selected_objs) < 2: return {"FINISHED"} for obj in selected_objs: if obj == context.active_object: @@ -312,16 +318,19 @@ class DumbWallJoiner: # 2. Given an "end face", identify a side "target face" of the other wall # to project towards. # 3. Project the vertices of an "end face" to the "target face". - def __init__(self, wall1, wall2): + # Alternatively, a target coordinate may be provided as an imaginary point for the wall to join to + def __init__(self, wall1, wall2=None, target_coordinate=None): self.wall1 = wall1 self.wall2 = wall2 + self.target_coordinate = target_coordinate self.should_project_to_frontface = True self.should_attempt_v_junction_projection = False self.initialise_convenience_variables() def initialise_convenience_variables(self): self.wall1_matrix = self.wall1.matrix_world - self.wall2_matrix = self.wall2.matrix_world + if self.wall2: + self.wall2_matrix = self.wall2.matrix_world self.pos_x = self.wall1_matrix.to_quaternion() @ Vector((1, 0, 0)) self.neg_x = self.wall1_matrix.to_quaternion() @ Vector((-1, 0, 0)) @@ -339,6 +348,26 @@ class DumbWallJoiner: self.wall1.data.vertices[v].co[0] = max_x self.recalculate_origins() + # An extension is where a single end of wall1 is projected to an imaginary + # plane denoted by the target coordinate. + def extend(self): + wall1_min_faces, wall1_max_faces = self.get_wall_end_faces(self.wall1) + ef1_distance = abs(mathutils.geometry.distance_point_to_plane( + self.wall1_matrix @ self.wall1.data.vertices[wall1_min_faces[0].vertices[0]].co, + self.target_coordinate, + self.pos_x, + )) + ef2_distance = abs(mathutils.geometry.distance_point_to_plane( + self.wall1_matrix @ self.wall1.data.vertices[wall1_max_faces[0].vertices[0]].co, + self.target_coordinate, + self.neg_x, + )) + if ef1_distance < ef2_distance: + self.project_end_faces_to_target(wall1_min_faces) + else: + self.project_end_faces_to_target(wall1_max_faces) + self.recalculate_origins() + # A T-junction is an ordered operation where a single end of wall1 is joined # to wall2 if possible (i.e. walls aren't parallel). Wall2 is not modified. # First, wall1 end faces are identified. We attempt to project an end face @@ -424,7 +453,8 @@ class DumbWallJoiner: def recalculate_origins(self): bpy.context.view_layer.update() recalculate_dumb_wall_origin(self.wall1) - recalculate_dumb_wall_origin(self.wall2) + if self.wall2: + recalculate_dumb_wall_origin(self.wall2) def swap_walls(self): self.wall1, self.wall2 = self.wall2, self.wall1 @@ -452,6 +482,14 @@ class DumbWallJoiner: local_point = wall_matrix.inverted() @ point wall.data.vertices[v].co = local_point + def project_end_faces_to_target(self, end_faces): + for end_face in end_faces: + for v in end_face.vertices: + vertex = self.wall1_matrix @ self.wall1.data.vertices[v].co + self.wall1.data.vertices[v].co = self.wall1_matrix.inverted() @ mathutils.geometry.intersect_line_plane( + vertex, vertex + self.pos_x, self.target_coordinate, self.pos_x + ) + # A projection target face is a side face on the target wall that has a # significant local Y component to its normal (i.e. is not pointing up or # down or something). In addition, its plane must intersect with the From 19b6765994f7bceb7bc76a1aea599f4014d38407 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 13 Jul 2021 16:39:56 +1000 Subject: [PATCH 005/168] Minor fix --- src/blenderbim/blenderbim/bim/import_ifc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 0f0abb7beb..ac270bcfa0 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -332,10 +332,10 @@ class IfcImporter: return project = self.file.by_type("IfcProject")[0] site = self.find_decomposed_ifc_class(project, "IfcSite") - if site and self.is_element_far_away(site[0]): + if site and self.is_element_far_away(site[0], is_meters=False): return self.guess_georeferencing(site[0]) building = self.find_decomposed_ifc_class(project, "IfcBuilding") - if building and self.is_element_far_away(building[0]): + if building and self.is_element_far_away(building[0], is_meters=False): return self.guess_georeferencing(building[0]) return self.guess_absolute_coordinate() From 63f578315ddec3b99fd795d061de1605becd4350 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 13 Jul 2021 18:45:07 +1000 Subject: [PATCH 006/168] Add support for 3D curve / wireframe representations. --- .../bim/module/geometry/operator.py | 54 ++++++++++--------- .../api/geometry/add_representation.py | 8 ++- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index fccaec2288..0d2bc7a63d 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -117,19 +117,20 @@ class AddRepresentation(bpy.types.Operator): if s.material and not s.material.BIMMaterialProperties.ifc_style_id ] - ifcopenshell.api.run( - "style.assign_representation_styles", - self.file, - **{ - "shape_representation": result, - "styles": [ - self.file.by_id(s.material.BIMMaterialProperties.ifc_style_id) - for s in obj.material_slots - if s.material - ], - "should_use_presentation_style_assignment": context.scene.BIMGeometryProperties.should_use_presentation_style_assignment, - }, - ) + if isinstance(obj.data, bpy.types.Mesh) and len(obj.data.polygons): + ifcopenshell.api.run( + "style.assign_representation_styles", + self.file, + **{ + "shape_representation": result, + "styles": [ + self.file.by_id(s.material.BIMMaterialProperties.ifc_style_id) + for s in obj.material_slots + if s.material + ], + "should_use_presentation_style_assignment": context.scene.BIMGeometryProperties.should_use_presentation_style_assignment, + }, + ) ifcopenshell.api.run( "geometry.assign_representation", self.file, **{"product": product, "representation": result} ) @@ -330,19 +331,20 @@ class UpdateRepresentation(bpy.types.Operator): if s.material and not s.material.BIMMaterialProperties.ifc_style_id ] - ifcopenshell.api.run( - "style.assign_representation_styles", - self.file, - **{ - "shape_representation": new_representation, - "styles": [ - self.file.by_id(s.material.BIMMaterialProperties.ifc_style_id) - for s in obj.material_slots - if s.material - ], - "should_use_presentation_style_assignment": context.scene.BIMGeometryProperties.should_use_presentation_style_assignment, - }, - ) + if isinstance(obj.data, bpy.types.Mesh) and len(obj.data.polygons): + ifcopenshell.api.run( + "style.assign_representation_styles", + self.file, + **{ + "shape_representation": new_representation, + "styles": [ + self.file.by_id(s.material.BIMMaterialProperties.ifc_style_id) + for s in obj.material_slots + if s.material + ], + "should_use_presentation_style_assignment": context.scene.BIMGeometryProperties.should_use_presentation_style_assignment, + }, + ) # TODO: move this into a replace_representation usecase or something for inverse in self.file.get_inverse(old_representation): diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py index 53be859417..16896a254e 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py @@ -22,8 +22,6 @@ class Usecase: "unit_scale": None, # A scale factor to apply for all vectors in case the unit is different "should_force_faceted_brep": False, # If we should force faceted breps for meshes "should_force_triangulation": False, # If we should force triangulation for meshes - "is_wireframe": False, # If the geometry is a wireframe - "is_curve": False, # If the geometry is a Blender curve "is_point_cloud": False, # If the geometry is a point cloud # Possible IFC representation classes: # IfcExtrudedAreaSolid/IfcRectangleProfileDef @@ -204,9 +202,9 @@ class Usecase: ) def create_variable_representation(self): - if self.settings["is_wireframe"]: - return self.create_wireframe_representation() - elif self.settings["is_curve"]: + if isinstance(self.settings["geometry"], bpy.types.Curve): + return self.create_curve3d_representation() + elif not len(self.settings["geometry"].polygons): return self.create_curve3d_representation() elif self.settings["is_point_cloud"]: return self.create_point_cloud_representation() From 248b21eab3fbb00c91a36830d6cab774491f6d06 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 13 Jul 2021 18:58:30 +1000 Subject: [PATCH 007/168] Importing 2D elements of any arbitrary element is now supported --- src/blenderbim/blenderbim/bim/import_ifc.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index ac270bcfa0..4cf9a37103 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -208,7 +208,7 @@ class IfcImporter: self.profile_code("Create native products") self.create_products() self.profile_code("Create products") - self.create_empty_products() + self.create_empty_and_2d_elements() self.profile_code("Create empty products") self.create_type_products() self.profile_code("Create type products") @@ -589,14 +589,19 @@ class IfcImporter: break print("Done creating geometry") - def create_empty_products(self): - for element in self.file.by_type("IfcProduct"): + def create_empty_and_2d_elements(self): + curve_products = [] + for element in self.file.by_type("IfcElement"): if element.id() in self.added_data: continue if element.is_a("IfcPort"): continue if not element.Representation: self.create_product(element) + else: + curve_products.append(element) + if curve_products: + self.create_curve_products(curve_products) def create_annotation(self): self.create_curve_products(self.file.by_type("IfcAnnotation")) From 37fe04ffd2ded8ef07793c2327ed7e34e2ef3184 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 13 Jul 2021 19:32:12 +1000 Subject: [PATCH 008/168] New recipe to downgrade indexed poly curves, often used to allow IFC4 grids to show up in viewers like Revizto / XBim Xplorer / etc. --- .../recipes/DowngradeIndexedPolyCurve.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py diff --git a/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py b/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py new file mode 100644 index 0000000000..05d1c9b645 --- /dev/null +++ b/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py @@ -0,0 +1,31 @@ +import ifcopenshell +import ifcopenshell.util.element + + +class Patcher: + def __init__(self, src, file, logger, args=None): + self.src = src + self.file = file + self.logger = logger + self.args = args + + def patch(self): + curve_map = {} + + for curve in self.file.by_type("IfcIndexedPolyCurve"): + if "IfcArcIndex" in [s.is_a() for s in curve.Segments]: + print("Could not convert curve due to arcs", curve) + continue + coordinates = curve.Points.CoordList + points = [] + for i, segment in enumerate(curve.Segments): + segment = segment.wrappedValue + if i == 0: + points.append(self.file.createIfcCartesianPoint(coordinates[segment[0] - 1])) + points.append(self.file.createIfcCartesianPoint(coordinates[segment[1] - 1])) + polyline = self.file.create_entity("IfcPolyline", points) + curve_map[curve] = polyline + + for curve, polyline in curve_map.items(): + for inverse in self.file.get_inverse(curve): + ifcopenshell.util.element.replace_attribute(inverse, curve, polyline) From a08cf23d631eb1dc938216786ff5365d63a48ad0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 14 Jul 2021 09:37:29 +1000 Subject: [PATCH 009/168] Fix #1562. Fix bug where all instances change meshes when changing type. --- .../blenderbim/bim/module/geometry/operator.py | 15 ++++++++++++--- .../blenderbim/bim/module/geometry/ui.py | 12 +++++++++--- .../blenderbim/bim/module/model/column.py | 8 ++++++-- .../blenderbim/bim/module/model/product.py | 5 ++++- .../blenderbim/bim/module/type/operator.py | 14 ++++++++++---- 5 files changed, 41 insertions(+), 13 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 0d2bc7a63d..3a1d0a74d0 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -161,6 +161,7 @@ class SwitchRepresentation(bpy.types.Operator): ifc_definition_id: bpy.props.IntProperty() should_reload: bpy.props.BoolProperty() disable_opening_subtractions: bpy.props.BoolProperty() + should_switch_all_meshes: bpy.props.BoolProperty() def execute(self, context): self.element_obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object @@ -172,11 +173,17 @@ class SwitchRepresentation(bpy.types.Operator): mesh = bpy.data.meshes.get(self.mesh_name) if mesh: - self.element_obj.data.user_remap(mesh) + self.switch_mesh(mesh) if not mesh or self.should_reload: self.pull_mesh_from_ifc() return {"FINISHED"} + def switch_mesh(self, mesh): + if self.should_switch_all_meshes or self.file.by_id(self.oprops.ifc_definition_id).is_a("IfcTypeProduct"): + self.element_obj.data.user_remap(mesh) + else: + self.element_obj.data = mesh + def get_mesh_name(self): representation = self.resolve_mapped_representation(self.file.by_id(self.ifc_definition_id)) return "{}/{}".format(self.context_of_items.id(), representation.id()) @@ -206,7 +213,7 @@ class SwitchRepresentation(bpy.types.Operator): mesh = ifc_importer.create_mesh(element, shape) mesh.name = self.mesh_name mesh.BIMMeshProperties.ifc_definition_id = self.ifc_definition_id - self.element_obj.data.user_remap(mesh) + self.switch_mesh(mesh) material_creator = import_ifc.MaterialCreator(ifc_import_settings, ifc_importer) material_creator.load_existing_materials() material_creator.create(element, self.element_obj, mesh) @@ -368,7 +375,9 @@ class UpdateParametricRepresentation(bpy.types.Operator): props = obj.data.BIMMeshProperties parameter = props.ifc_parameters[self.index] element = IfcStore.get_file().by_id(parameter.step_id)[parameter.index] = parameter.value - bpy.ops.bim.switch_representation(ifc_definition_id=props.ifc_definition_id, should_reload=True) + bpy.ops.bim.switch_representation( + ifc_definition_id=props.ifc_definition_id, should_reload=True, should_switch_all_meshes=True + ) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/geometry/ui.py b/src/blenderbim/blenderbim/bim/module/geometry/ui.py index 936aeffd9a..83f48fa6d0 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/ui.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/ui.py @@ -40,7 +40,9 @@ class BIM_PT_representations(Panel): row.label(text=representation["ContextOfItems"]["ContextIdentifier"]) row.label(text=representation["ContextOfItems"]["TargetView"]) row.label(text=representation["RepresentationType"]) - op = row.operator("bim.switch_representation", icon="OUTLINER_DATA_MESH", text="") + op = row.operator( + "bim.switch_representation", icon="OUTLINER_DATA_MESH", text="", should_switch_all_meshes=True + ) op.should_reload = True op.ifc_definition_id = ifc_definition_id op.disable_opening_subtractions = False @@ -70,11 +72,15 @@ class BIM_PT_mesh(Panel): props = context.active_object.data.BIMMeshProperties row = layout.row(align=True) - op = row.operator("bim.switch_representation", text="Bake Voids", icon="SELECT_SUBTRACT") + op = row.operator( + "bim.switch_representation", text="Bake Voids", icon="SELECT_SUBTRACT", should_switch_all_meshes=True + ) op.should_reload = True op.ifc_definition_id = props.ifc_definition_id op.disable_opening_subtractions = False - op = row.operator("bim.switch_representation", text="Dynamic Voids", icon="SELECT_INTERSECT") + op = row.operator( + "bim.switch_representation", text="Dynamic Voids", icon="SELECT_INTERSECT", should_switch_all_meshes=True + ) op.should_reload = True op.ifc_definition_id = props.ifc_definition_id op.disable_opening_subtractions = True diff --git a/src/blenderbim/blenderbim/bim/module/model/column.py b/src/blenderbim/blenderbim/bim/module/model/column.py index 9adf87eb59..deacf754e5 100644 --- a/src/blenderbim/blenderbim/bim/module/model/column.py +++ b/src/blenderbim/blenderbim/bim/module/model/column.py @@ -120,7 +120,9 @@ class DumbColumnGenerator: profile_set_usage=profile_set_usage.id(), ) representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") - bpy.ops.bim.switch_representation(obj=obj.name, ifc_definition_id=representation.id(), should_reload=True) + bpy.ops.bim.switch_representation( + obj=obj.name, ifc_definition_id=representation.id(), should_reload=True, should_switch_all_meshes=True + ) pset = ifcopenshell.api.run("pset.add_pset", self.file, product=element, name="EPset_Parametric") ifcopenshell.api.run("pset.edit_pset", self.file, pset=pset, properties={"Engine": "BlenderBIM.DumbColumn"}) MaterialData.load(self.file) @@ -165,4 +167,6 @@ class DumbColumnRegenerator: return representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") if representation: - bpy.ops.bim.switch_representation(obj=obj.name, ifc_definition_id=representation.id(), should_reload=True) + bpy.ops.bim.switch_representation( + obj=obj.name, ifc_definition_id=representation.id(), should_reload=True, should_switch_all_meshes=True + ) diff --git a/src/blenderbim/blenderbim/bim/module/model/product.py b/src/blenderbim/blenderbim/bim/module/model/product.py index af51797a0c..3e84c223ee 100644 --- a/src/blenderbim/blenderbim/bim/module/model/product.py +++ b/src/blenderbim/blenderbim/bim/module/model/product.py @@ -98,6 +98,7 @@ def generate_box(usecase_path, ifc_file, settings): **{"product": product, "representation": new_box} ) + def regenerate_profile_usage(usecase_path, ifc_file, settings): elements = [] if ifc_file.schema == "IFC2X3": @@ -117,4 +118,6 @@ def regenerate_profile_usage(usecase_path, ifc_file, settings): continue representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") if representation: - bpy.ops.bim.switch_representation(obj=obj.name, ifc_definition_id=representation.id(), should_reload=True) + bpy.ops.bim.switch_representation( + obj=obj.name, ifc_definition_id=representation.id(), should_reload=True, should_switch_all_meshes=True + ) diff --git a/src/blenderbim/blenderbim/bim/module/type/operator.py b/src/blenderbim/blenderbim/bim/module/type/operator.py index 7e3c6a4450..7016be6f74 100644 --- a/src/blenderbim/blenderbim/bim/module/type/operator.py +++ b/src/blenderbim/blenderbim/bim/module/type/operator.py @@ -22,7 +22,9 @@ class AssignType(bpy.types.Operator): self.file = IfcStore.get_file() relating_type = self.relating_type or int(context.active_object.BIMTypeProperties.relating_type) related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] + if self.related_object + else bpy.context.selected_objects or [bpy.context.active_object] ) for related_object in related_objects: oprops = related_object.BIMObjectProperties @@ -39,15 +41,19 @@ class AssignType(bpy.types.Operator): MaterialData.load(IfcStore.get_file(), oprops.ifc_definition_id) representation_ids = GeometryData.products[oprops.ifc_definition_id] if not representation_ids: - pass # TODO: clear geometry? Make void? Make none type? + pass # TODO: clear geometry? Make void? Make none type? has_switched = False for representation_id in representation_ids: representation = GeometryData.representations[representation_id] if representation["ContextOfItems"]["ContextIdentifier"] == "Body": - bpy.ops.bim.switch_representation(obj=related_object.name, ifc_definition_id=representation_id) + bpy.ops.bim.switch_representation( + obj=related_object.name, ifc_definition_id=representation_id, should_switch_all_meshes=False + ) has_switched = True if not has_switched and representation_ids: - bpy.ops.bim.switch_representation(obj=related_object.name, ifc_definition_id=representation_id) + bpy.ops.bim.switch_representation( + obj=related_object.name, ifc_definition_id=representation_id, should_switch_all_meshes=False + ) bpy.ops.bim.disable_editing_type(obj=related_object.name) MaterialData.load(self.file) From ad2585c5715e5d2ec762ce8e472c6cd15ba86eab Mon Sep 17 00:00:00 2001 From: Prabhat Singh <59395410+TestPrab@users.noreply.github.com> Date: Thu, 15 Jul 2021 13:11:24 +0530 Subject: [PATCH 010/168] Merge branch 'v0.6.0' of https://github.com/TestPrab/IfcOpenShell into prabhat_gsoc (#1566) --- src/bcf/bcf/v3/bcfapi.py | 544 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 544 insertions(+) diff --git a/src/bcf/bcf/v3/bcfapi.py b/src/bcf/bcf/v3/bcfapi.py index e69de29bb2..f4c0d6ea8d 100644 --- a/src/bcf/bcf/v3/bcfapi.py +++ b/src/bcf/bcf/v3/bcfapi.py @@ -0,0 +1,544 @@ +import uuid +import time +import json +import urllib +import requests +import webbrowser +import http.server +import base64 + + +client_id, client_secret = "", "" + + +class OAuthReceiver(http.server.BaseHTTPRequestHandler): + def do_GET(self): + query = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query) + self.server.auth_code = query.get("code", [""])[0] + self.server.auth_state = query.get("state", [""])[0] + self.send_response(200) + self.send_header("Content-type", "text/plain") + self.end_headers() + self.wfile.write("You have now authenticated :) You may now close this browser window.".encode("utf-8")) + + +class Client: + def __init__(self): + self.baseurl = None + self.access_token = "" + self.refresh_token = "" + self.access_token_expires_on = time.time() + self.refresh_token_expires_on = float("inf") + self.auth_endpoint = None + self.token_endpoint = None + self.client_id = client_id + self.client_secret = client_secret + self.version_ids = {} + self.version = None + self.auth_method = None + self.redirect_uri = None + self.api_baseurl = None + + def get(self, endpoint, params=None, is_auth_required=False): + headers = {"Authorization": "Bearer " + self.get_access_token()} + return requests.get(f"{self.api_baseurl}{endpoint}", headers=headers, params=params or None).json() + + def post(self, endpoint, data=None, params=None): + headers = { + "Authorization": "Bearer " + self.get_access_token(), + "Content-type": "application/json", + } + resp = requests.post( + f"{self.api_baseurl}{endpoint}", + headers=headers, + params=params or None, + data=data or None, + ) + return resp.status_code, resp.text + + def put(self, endpoint, data=None, params=None): + headers = { + "Authorization": "Bearer " + self.get_access_token(), + "Content-type": "application/json", + } + resp = requests.put( + f"{self.baseurl}{endpoint}", + headers=headers, + params=params or None, + data=data or None, + ) + return resp.status_code, resp.text + + def load_urls(self, base_url=None, redirect_uri=None): + self.baseurl = base_url + self.redirect_uri = redirect_uri + return None + + def set_urls(self): + resp = requests.get(f"{self.baseurl}opencde/1.0/auth") + values = resp.json() + self.auth_endpoint = values["oauth2_auth_url"] + self.token_endpoint = values["oauth2_token_url"] + return f"{self.auth_endpoint}, {self.token_endpoint}, {self.baseurl}" + + def delete(self, endpoint, params=None): + headers = {"Authorization": "Bearer " + self.get_access_token()} + resp = requests.put( + f"{self.baseurl}{endpoint}", + headers=headers, + params=params or None, + ) + return resp.status_code + + def get_access_token(self): + if self.access_token and self.access_token_expires_on > time.time(): + return self.access_token + elif self.refresh_token and self.refresh_token_expires_on > time.time(): + self.get_refresh_token() + else: + self.login() + return self.access_token + + def get_auth_method(self): + resp = requests.get(f"{self.baseurl}opencde/1.0/auth") + supported_auth_method = resp.json()["supported_oauth2_flows"] + return supported_auth_method + + def get_versions(self): + resp = requests.get(f"{self.baseurl}opencde/versions") + resp_values = resp.json()["versions"] + for version in resp_values: + if "api_base_url" in version: + self.version_ids.update({version["version_id"]: version["api_base_url"]}) + return self.version_ids + + def set_version(self, version=None): + self.version = version + self.api_baseurl = self.version_ids[self.version] + return f"Version set to {self.version} , API base url is set to {self.api_baseurl}" + + def login(self): + self.set_urls() + with http.server.HTTPServer(("", 8080), OAuthReceiver) as server: + state = str(uuid.uuid4()) + query = urllib.parse.urlencode( + { + "client_id": self.client_id, + "response_type": "code", + "state": state, + "redirect_uri": f"http://localhost:{server.server_address[1]}/lendlease", + "email": "Dion.Moult@lendlease.com", + } + ) + webbrowser.open(f"{self.auth_endpoint}&{query}") + server.timeout = 100 + server.state = state + server.handle_request() + if server.auth_code and server.auth_state == state: + data = { + "grant_type": "authorization_code", + "code": server.auth_code, + "redirect_uri": f"http://localhost:{server.server_address[1]}/lendlease", + } + auth_string = f"{self.client_id}:{self.client_secret}" + header_string = base64.b64encode(auth_string.encode("utf-8")).decode("utf-8") + headers = {"Authorization": f"Basic {header_string}"} + self.set_tokens_from_response(requests.post(self.token_endpoint, data=data, headers=headers)) + + def get_refresh_token(self): + self.set_tokens_from_response( + requests.post( + self.token_endpoint, + params={ + "grant_type": "refresh_token", + "refresh_token": self.refresh_token, + }, + ).json() + ) + + def get_new_access_token(self): + auth_string = f"{self.client_id}:{self.client_secret}" + header_string = base64.b64encode(auth_string.encode("utf-8")).decode("utf-8") + headers = {"Authorization": f"Basic {header_string}"} + self.set_tokens_from_response( + requests.post( + self.token_endpoint, + data={ + "grant_type": "refresh_token", + "refresh_token": self.refresh_token, + }, + headers=headers, + ).json() + ) + + def set_auth_method(self, method="authorization_code_grant"): + if method != "authorization_code_grant": + raise NotImplementedError(f"{method} not supported") + else: + self.auth_method = method + + def set_tokens_from_response(self, response): + response = response.json() + self.access_token = response["access_token"] + self.refresh_token = response["refresh_token"] + self.access_token_expires_on = time.time() + response["expires_in"] + if "refresh_token_expires_in" in response: + self.refresh_token_expires_on = time.time() + response["refresh_token_expires_in"] + + def get_projects(self) -> list: + return self.get( + f"/projects", + ) + + def get_project( + self, + project_id="", + ) -> dict: + return self.get( + f"/projects/{project_id}", + { + "project_id": project_id, + }, + ) + + def update_project(self, project_id="", data=None) -> dict: + url = f"{self.baseurl}/projects/{project_id}" + headers = {"Authorization": "Bearer " + self.get_access_token()} + resp = requests.put(url, headers=headers, data=data) + return resp.status_code, resp.text + + def get_extensions( + self, + project_id="", + ) -> dict: + return self.get( + f"/projects/{project_id}/extensions", + { + "project_id": project_id, + }, + ) + + def get_topics( + self, + project_id="", + topics="", + query_string=None, + ) -> list: + # return self.get( + # f"/projects/{project_id}/topics", + # { + # "project_id": project_id, + # "topics": topics, + # "query_string": query_string, + # }, + # ) + pass + + def get_topic(self, project_id="", topic_id="") -> dict: + return self.get( + f"/projects/{project_id}/topics/{topic_id}", + { + "project_id": project_id, + "topic_id": topic_id, + }, + ) + + def create_topic(self, project_id="", data=None): + return self.post(f"/projects/{project_id}/topics", data=data) + + def update_topic(self, project_id="", topic_id="", data=None) -> dict: + return self.put(f"/projects/{project_id}/topics/{topic_id}", data=data) + + def delete_topic(self, project_id="", topic_id=""): + return self.delete(f"/projects/{project_id}/topics/{topic_id}") + + def get_snippet(self, project_id="", topic_id="") -> str: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/snippet", + { + "project_id": project_id, + "topic_id": topic_id, + }, + ) + + def update_snippet(self, project_id="", topic_id="", data=None): + return self.put(f"/projects/{project_id}/topics", data=data) + + def get_files_information(self, project_id="") -> list: + return self.get( + f"/projects/{project_id}/files_information", + { + "project_id": project_id, + }, + ) + + def get_files(self, project_id="", topic_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/files", + { + "project_id": project_id, + "topic_id": topic_id, + }, + ) + + def update_files( + self, + project_id="", + topic_id="", + data=None, + params=None, + ): + return self.put( + f"/projects/{project_id}/topics/{topic_id}/files", + data=data, + ) + + def get_comments(self, project_id="", topic_id="") -> list: + pass + + def create_comments( + self, + project_id="", + topic_id="", + data=None, + params=None, + ): + return self.post( + f"/projects/{project_id}/topics/{topic_id}/comments", + data=data, + ) + + def get_comment(self, project_id="", topic_id="", comment_id="") -> dict: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/comments/{comment_id}", + { + "project_id": project_id, + "topic_id": topic_id, + "comment_id": comment_id, + }, + ) + + def delete_comment(self, project_id="", topic_id="", comment_id=""): + return self.delete(f"/projects/{project_id}/topics/{topic_id}/comments/{comment_id}") + + def update_comment( + self, + project_id="", + topic_id="", + comment_id="", + data=None, + ): + return self.put( + f"/projects/{project_id}/topics/{topic_id}/comments/{comment_id}", + data=data, + ) + + def get_viewpoints(self, project_id="", topic_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/viewpoints", + { + "project_id": project_id, + "topic_id": topic_id, + }, + ) + + def create_viewpoints(self, project_id="", topic_id="", data=None): + return self.post( + f"/projects/{project_id}/topics/{topic_id}/viewpoints", + data=data, + ) + + def get_viewpoint(self, project_id="", topic_id="", viewpoint_id="") -> dict: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/viewpoints/{viewpoint_id}", + { + "project_id": project_id, + "topic_id": topic_id, + "viewpoint_id": viewpoint_id, + }, + ) + + def delete_viewpoint( + self, + project_id="", + topic_id="", + viewpoint_id="", + ): + return self.delete( + f"/projects/{project_id}/topics/{topic_id}/viewpoints/{viewpoint_id}", + ) + + def get_snapshot(self, project_id="", topic_id="", viewpoint_id="") -> str: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/viewpoints/{viewpoint_id}/snapshot", + { + "project_id": project_id, + "topic_id": topic_id, + "viewpoint_id": viewpoint_id, + }, + ) + + def get_bitmap(self, project_id="", topic_id="", viewpoint_id="", bitmap_id="") -> str: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/viewpoints/{viewpoint_id}/bitmaps/{bitmap_id}", + { + "project_id": project_id, + "topic_id": topic_id, + "viewpoint_id": viewpoint_id, + "bitmap_id": bitmap_id, + }, + ) + + def get_selection(self, project_id="", topic_id="", viewpoint_id="") -> dict: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/viewpoints/{viewpoint_id}/selection", + { + "project_id": project_id, + "topic_id": topic_id, + "viewpoint_id": viewpoint_id, + }, + ) + + def get_coloring(self, project_id="", topic_id="", viewpoint_id="") -> dict: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/viewpoints/{viewpoint_id}/coloring", + { + "project_id": project_id, + "topic_id": topic_id, + "viewpoint_id": viewpoint_id, + }, + ) + + def get_visibility(self, project_id="", topic_id="", viewpoint_id="") -> dict: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/viewpoints/{viewpoint_id}/visibility", + { + "project_id": project_id, + "topic_id": topic_id, + "viewpoint_id": viewpoint_id, + }, + ) + + def get_related_topics(self, project_id="", topic_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/related_topics", + { + "project_id": project_id, + "topic_id": topic_id, + }, + ) + + def update_related_topics( + self, + project_id="", + topic_id="", + data=None, + ): + return self.put( + f"/projects/{project_id}/topics/{topic_id}/related_topics", + data=data, + ) + + def get_document_references(self, project_id="", topic_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/document_references", + { + "project_id": project_id, + "topic_id": topic_id, + }, + ) + + def create_document_reference( + self, + project_id="", + topic_id="", + data=None, + ): + return self.post( + f"/projects/{project_id}/topics/{topic_id}/document_references", + data=data, + ) + + def update_document_references( + self, + project_id="", + topic_id="", + document_reference_id="", + data=None, + ): + return self.put( + f"/projects/{project_id}/topics/{topic_id}/document_references/{document_reference_id}", + data=data, + ) + + def get_documents(self, project_id="", topic_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/documents", + { + "project_id": project_id, + "topic_id": topic_id, + }, + ) + + def create_document( + self, + project_id="", + topic_id="", + guid=None, + data=None, + ): + headers = { + "Authorization": "Bearer " + self.get_access_token(), + "Content-type": "application/octet-stream", + } + response = requests.post( + f"/projects/{project_id}/topics/{topic_id}/documents", + data=data, + params={guid}, + headers=headers, + ) + + def get_document(self, project_id="", topic_id="", document_id="") -> str: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/documents/{document_id}", + { + "project_id": project_id, + "topic_id": topic_id, + "document_id": document_id, + }, + ) + + def get_topics_events(self, project_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/events", + { + "project_id": project_id, + }, + ) + + def get_topic_events(self, project_id="", topic_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/events", + { + "project_id": project_id, + "topic_id": topic_id, + }, + ) + + def get_comments_events(self, project_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/comments/events", + { + "project_id": project_id, + }, + ) + + def get_comment_events(self, project_id="", topic_id="", comment_id="") -> list: + return self.get( + f"/projects/{project_id}/topics/{topic_id}/comments/{comment_id}/events", + { + "project_id": project_id, + "topic_id": topic_id, + "comment_id": comment_id, + }, + ) From d34956c2c7dafcd2e85b0b63353bdbb0b40dcfab Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 15 Jul 2021 18:02:16 +1000 Subject: [PATCH 011/168] Add readme info on how to use new BCFAPI. Thanks TestPrab! --- src/bcf/README.md | 33 +++++++++++++++++++++++++++++++++ src/bcf/bcf/v3/bcfapi.py | 34 +++++++++++++++------------------- 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/bcf/README.md b/src/bcf/README.md index 1ce991d97f..51f19c7afe 100644 --- a/src/bcf/README.md +++ b/src/bcf/README.md @@ -60,3 +60,36 @@ topic = bcfxml.get_topic(guid) topic.title = "New title" bcfxml.edit_topic(topic) ``` + +## bcfapi + +The `bcfapi` module lets you interact with the BCF-API standard. + +``` +from bcf.v3.bcfapi import Client + +client_id = "YOUR_CLIENT_ID" +client_secret = "YOUR_CLIENT_SECRET" + +client = Client(client_id, client_secret) +client.set_urls(base_url="OPENCDE_BASEURL") +auth_methods = client.get_auth_methods() + +# Our library currently only implements the authorization_code flow +if "authorization_code" in auth_methods: + client.login() + +versions = client.get_versions() + +if "3.0" in versions: + client.set_version(version="3.0") + +data = client.get_projects() +print(data) +project_id = data[0]["project_id"] +print(project_id) +data = client.get_project(project_id) +print(data) +data = client.get_extensions(project_id) +print(data) +``` diff --git a/src/bcf/bcf/v3/bcfapi.py b/src/bcf/bcf/v3/bcfapi.py index f4c0d6ea8d..f6b12951ad 100644 --- a/src/bcf/bcf/v3/bcfapi.py +++ b/src/bcf/bcf/v3/bcfapi.py @@ -23,7 +23,7 @@ class OAuthReceiver(http.server.BaseHTTPRequestHandler): class Client: - def __init__(self): + def __init__(self, client_id, client_secret): self.baseurl = None self.access_token = "" self.refresh_token = "" @@ -69,17 +69,9 @@ class Client: ) return resp.status_code, resp.text - def load_urls(self, base_url=None, redirect_uri=None): + def set_urls(self, base_url=None, redirect_uri=None): self.baseurl = base_url self.redirect_uri = redirect_uri - return None - - def set_urls(self): - resp = requests.get(f"{self.baseurl}opencde/1.0/auth") - values = resp.json() - self.auth_endpoint = values["oauth2_auth_url"] - self.token_endpoint = values["oauth2_token_url"] - return f"{self.auth_endpoint}, {self.token_endpoint}, {self.baseurl}" def delete(self, endpoint, params=None): headers = {"Authorization": "Bearer " + self.get_access_token()} @@ -99,10 +91,9 @@ class Client: self.login() return self.access_token - def get_auth_method(self): + def get_auth_methods(self): resp = requests.get(f"{self.baseurl}opencde/1.0/auth") - supported_auth_method = resp.json()["supported_oauth2_flows"] - return supported_auth_method + return resp.json()["supported_oauth2_flows"] def get_versions(self): resp = requests.get(f"{self.baseurl}opencde/versions") @@ -115,10 +106,13 @@ class Client: def set_version(self, version=None): self.version = version self.api_baseurl = self.version_ids[self.version] - return f"Version set to {self.version} , API base url is set to {self.api_baseurl}" def login(self): - self.set_urls() + resp = requests.get(f"{self.baseurl}opencde/1.0/auth") + values = resp.json() + self.auth_endpoint = values["oauth2_auth_url"] + self.token_endpoint = values["oauth2_token_url"] + with http.server.HTTPServer(("", 8080), OAuthReceiver) as server: state = str(uuid.uuid4()) query = urllib.parse.urlencode( @@ -126,11 +120,13 @@ class Client: "client_id": self.client_id, "response_type": "code", "state": state, - "redirect_uri": f"http://localhost:{server.server_address[1]}/lendlease", - "email": "Dion.Moult@lendlease.com", + "redirect_uri": f"http://localhost:{server.server_address[1]}/{self.redirect_uri}", } ) - webbrowser.open(f"{self.auth_endpoint}&{query}") + if "?" in self.auth_endpoint: + webbrowser.open(f"{self.auth_endpoint}&{query}") + else: + webbrowser.open(f"{self.auth_endpoint}?{query}") server.timeout = 100 server.state = state server.handle_request() @@ -138,7 +134,7 @@ class Client: data = { "grant_type": "authorization_code", "code": server.auth_code, - "redirect_uri": f"http://localhost:{server.server_address[1]}/lendlease", + "redirect_uri": f"http://localhost:{server.server_address[1]}/{self.redirect_uri}", } auth_string = f"{self.client_id}:{self.client_secret}" header_string = base64.b64encode(auth_string.encode("utf-8")).decode("utf-8") From fd0406694059238d3a1a03a859b631c6ae5ee95c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 15 Jul 2021 18:21:18 +1000 Subject: [PATCH 012/168] Minor fix --- src/bcf/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bcf/README.md b/src/bcf/README.md index 51f19c7afe..e7a5208ba3 100644 --- a/src/bcf/README.md +++ b/src/bcf/README.md @@ -13,7 +13,7 @@ is available via `bcfapi.py`. The `bcfxml` module lets you interact with the BCF-XML standard. -``` +```python from bcf import bcfxml @@ -65,7 +65,7 @@ bcfxml.edit_topic(topic) The `bcfapi` module lets you interact with the BCF-API standard. -``` +```python from bcf.v3.bcfapi import Client client_id = "YOUR_CLIENT_ID" From 8d352ea07a88820277aae20a814fb46182a2a556 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 17 Jul 2021 09:13:37 +1000 Subject: [PATCH 013/168] Fix bug where editing a single material didn't quite work. --- src/blenderbim/blenderbim/bim/module/material/operator.py | 3 ++- src/blenderbim/blenderbim/bim/module/material/ui.py | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index ebeba9e020..07f541e777 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -473,7 +473,6 @@ class EditAssignedMaterial(bpy.types.Operator): obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object props = obj.BIMObjectMaterialProperties product_data = Data.products[obj.BIMObjectProperties.ifc_definition_id] - material_set = self.file.by_id(self.material_set) if product_data["type"] == "IfcMaterial": bpy.ops.bim.unassign_material(obj=obj.name) @@ -482,6 +481,8 @@ class EditAssignedMaterial(bpy.types.Operator): bpy.ops.bim.disable_editing_assigned_material(obj=obj.name) return {"FINISHED"} + material_set = self.file.by_id(self.material_set) + attributes = {} for attribute in props.material_set_attributes: attributes[attribute.name] = None if attribute.is_null else attribute.string_value diff --git a/src/blenderbim/blenderbim/bim/module/material/ui.py b/src/blenderbim/blenderbim/bim/module/material/ui.py index 0c21497055..d083e4b07a 100644 --- a/src/blenderbim/blenderbim/bim/module/material/ui.py +++ b/src/blenderbim/blenderbim/bim/module/material/ui.py @@ -97,6 +97,8 @@ class BIM_PT_object_material(Panel): self.material_set_data = Data.lists[self.material_set_id] self.set_items = self.material_set_data["Materials"] or [] self.set_item_name = "list_item" + else: + self.material_set_id = 0 return self.draw_material_ui() row = self.layout.row(align=True) From e3786423c253a2357704c596c61ed75971be44f0 Mon Sep 17 00:00:00 2001 From: Prabhat Singh <59395410+TestPrab@users.noreply.github.com> Date: Sat, 17 Jul 2021 12:12:19 +0530 Subject: [PATCH 014/168] Update README.md (#1571) --- src/bcf/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/bcf/README.md b/src/bcf/README.md index e7a5208ba3..c01a4e58a7 100644 --- a/src/bcf/README.md +++ b/src/bcf/README.md @@ -7,7 +7,7 @@ is available via `bcfapi.py`. - BCF-XML version 2.1: Fully supported - BCF-API version 2.1: Not supported, will probably tackle this after BCF-API v3.0 - BCF-XML version 3.0: Almost fully supported, except for the documents module - - BCF-API version 3.0: Not supported, but work underway to support it + - BCF-API version 3.0: Almost fully supported, except for two requests. ## bcfxml @@ -93,3 +93,9 @@ print(data) data = client.get_extensions(project_id) print(data) ``` + +## Todo List +The remaining work that needs to be completed in `bcfxml.py` and `bcfapi.py`. + * For `bcfxml.py` two xsds support is remaining namely 'documents.xsd` and `extensions.xsd`. + * For `bcfapi.py` two requests that are `get_topics` and `get_comments` are remaining. + From ca85927a510ae0cb4a8f8f390186f3f8f2487278 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 17 Jul 2021 09:06:03 +0200 Subject: [PATCH 015/168] #1572 wrong serializer output temp name --- src/ifcconvert/IfcConvert.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index b799a43796..7df682e61c 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -745,7 +745,7 @@ int main(int argc, char** argv) { std::uniform_int_distribution index_dist('A', 'Z'); { std::string v = ".ifcopenshell."; - output_temp_filename += path_t(v.begin(), v.end()); + output_temp_filename = path_t(v.begin(), v.end()); } for (int i = 0; i < 8; ++i) { output_temp_filename.push_back(static_cast(index_dist(rng))); From ac2324a65f1b8f3bd349c41b656b4571b2cc910b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 17 Jul 2021 17:00:43 +1000 Subject: [PATCH 016/168] Minor fix --- .../bim/module/material/operator.py | 19 ++++++++++++------- .../blenderbim/bim/module/material/ui.py | 4 ++-- .../api/material/edit_layer_usage.py | 10 ++++++++++ 3 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 src/ifcopenshell-python/ifcopenshell/api/material/edit_layer_usage.py diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index 07f541e777..3cb818f5c1 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -496,16 +496,21 @@ class EditAssignedMaterial(bpy.types.Operator): if self.material_set_usage: material_set_usage = self.file.by_id(self.material_set_usage) attributes = blenderbim.bim.helper.export_attributes(props.material_set_usage_attributes) - if attributes.get("CardinalPoint", None): - attributes["CardinalPoint"] = int(attributes["CardinalPoint"]) - ifcopenshell.api.run( - "material.edit_profile_usage", - self.file, - **{"usage": material_set_usage, "attributes": attributes}, - ) if material_set_usage.is_a("IfcMaterialLayerSetUsage"): + ifcopenshell.api.run( + "material.edit_layer_usage", + self.file, + **{"usage": material_set_usage, "attributes": attributes}, + ) Data.load_layer_usages() elif material_set_usage.is_a("IfcMaterialProfileSetUsage"): + if attributes.get("CardinalPoint", None): + attributes["CardinalPoint"] = int(attributes["CardinalPoint"]) + ifcopenshell.api.run( + "material.edit_profile_usage", + self.file, + **{"usage": material_set_usage, "attributes": attributes}, + ) Data.load_profile_usages() if material_set.is_a("IfcMaterialConstituentSet"): diff --git a/src/blenderbim/blenderbim/bim/module/material/ui.py b/src/blenderbim/blenderbim/bim/module/material/ui.py index d083e4b07a..d0e2b1ade4 100644 --- a/src/blenderbim/blenderbim/bim/module/material/ui.py +++ b/src/blenderbim/blenderbim/bim/module/material/ui.py @@ -318,11 +318,11 @@ class BIM_PT_object_material(Panel): item_name = item.get("Name", "Unnamed") or "Unnamed" thickness = item.get("LayerThickness") if thickness: - item_name += f" ({thickness})" + item_name += f" ({thickness:.3f})" total_thickness += thickness row.label(text=item_name, icon="ALIGN_CENTER") row.label(text=Data.materials[item["Material"]]["Name"], icon="MATERIAL") if total_thickness: row = self.layout.row(align=True) - row.label(text=f"Total Thickness: {total_thickness}") + row.label(text=f"Total Thickness: {total_thickness:.3f}") diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer_usage.py b/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer_usage.py new file mode 100644 index 0000000000..6902672574 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer_usage.py @@ -0,0 +1,10 @@ +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {"usage": None, "attributes": {}} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + for name, value in self.settings["attributes"].items(): + setattr(self.settings["usage"], name, value) From 0f39b0939628660c5705f7b7b4917c16bb9e4fa0 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 17 Jul 2021 09:38:31 +0200 Subject: [PATCH 017/168] #1567 add instance after the values are set --- src/ifcopenshell-python/ifcopenshell/file.py | 29 ++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/file.py b/src/ifcopenshell-python/ifcopenshell/file.py index 2963cf662b..5f9fbc7a3d 100644 --- a/src/ifcopenshell-python/ifcopenshell/file.py +++ b/src/ifcopenshell-python/ifcopenshell/file.py @@ -264,19 +264,44 @@ class file(object): eid = kwargs.pop("id", -1) except: pass + e = entity_instance((self.schema, type), self) - self.wrapped_data.add(e.wrapped_data, eid) - e.wrapped_data.this.disown() + + # Create pairs of {attribute index, attribute value}. + # Keyword arguments are mapped to their corresponding + # numeric index with get_argument_index(). + + # @todo we should probably check that values for + # attributes are not passed as duplicates using + # both regular arguments and keyword arguments. attrs = list(enumerate(args)) + [(e.wrapped_data.get_argument_index(name), arg) for name, arg in kwargs.items()] + + # Don't store these attributes as transactions + # as the creation it self is already stored with + # it's arguments if attrs: transaction = self.transaction self.transaction = None + for idx, arg in attrs: e[idx] = arg + + # Restore transaction status if attrs: self.transaction = transaction + if self.transaction: self.transaction.store_create(e) + + # Once the values are populated add the instance + # to the file. + self.wrapped_data.add(e.wrapped_data, eid) + + # The file container now handles the lifetime of + # this instance. Tell SWIG that it is no longer + # the owner. + e.wrapped_data.this.disown() + return e def __getattr__(self, attr): From 99e74533c3c45c90238c7c07ee4439aefb4eb888 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 17 Jul 2021 10:20:50 +0200 Subject: [PATCH 018/168] #1567 Clear inverse cache map after entity insertion --- src/ifcparse/IfcParse.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index b59ac0c887..62ad5a3f00 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1792,6 +1792,10 @@ IfcUtil::IfcBaseClass* IfcFile::addEntity(IfcUtil::IfcBaseClass* entity, int id) build_inverses_(new_entity); } + // @todo the id isn't actually used here, but instead + // clears the entire inverse cache map. + mark_entity_as_modified(0); + return new_entity; } From cccab9e751734d5e5548b0e2d8348adfc427859c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 17 Jul 2021 18:38:04 +1000 Subject: [PATCH 019/168] Minor fix. See #1567. --- src/ifcopenshell-python/ifcopenshell/file.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/file.py b/src/ifcopenshell-python/ifcopenshell/file.py index 5f9fbc7a3d..e4935a611d 100644 --- a/src/ifcopenshell-python/ifcopenshell/file.py +++ b/src/ifcopenshell-python/ifcopenshell/file.py @@ -290,9 +290,6 @@ class file(object): if attrs: self.transaction = transaction - if self.transaction: - self.transaction.store_create(e) - # Once the values are populated add the instance # to the file. self.wrapped_data.add(e.wrapped_data, eid) @@ -302,6 +299,9 @@ class file(object): # the owner. e.wrapped_data.this.disown() + if self.transaction: + self.transaction.store_create(e) + return e def __getattr__(self, attr): From 1bf136e93c964bd22f4c5b02cc4df2f20663baa7 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 17 Jul 2021 18:58:25 +1000 Subject: [PATCH 020/168] Copying a spatial element now also automatically creates a new collection. See #1565. --- .../blenderbim/bim/module/root/operator.py | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index f6bffb0e3d..c7f9e09ff8 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -265,13 +265,29 @@ class CopyClass(bpy.types.Operator): for obj in objects: if not obj.BIMObjectProperties.ifc_definition_id: continue - result = ifcopenshell.api.run( - "root.copy_class", self.file, **{"product": self.file.by_id(obj.BIMObjectProperties.ifc_definition_id)} - ) + old_element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) + result = ifcopenshell.api.run("root.copy_class", self.file, **{"product": old_element}) IfcStore.link_element(result, obj) relating_type = ifcopenshell.util.element.get_type(result) if relating_type and relating_type.RepresentationMaps: bpy.ops.bim.assign_type(relating_type=relating_type.id(), related_object=obj.name) else: bpy.ops.bim.add_representation(obj=obj.name) + if result.is_a("IfcSpatialElement") or element.is_a("IfcSpatialStructureElement"): + self.place_in_spatial_collection(old_element, obj) return {"FINISHED"} + + def place_in_spatial_collection(self, old_element, obj): + aggregate = ifcopenshell.util.element.get_aggregate(old_element) + if not aggregate: + return + container_obj = IfcStore.get_element(aggregate.id()) + for collection in obj.users_collection: + collection.objects.unlink(obj) + if "Ifc" in collection.name: + parent_collection = collection + for collection in container_obj.users_collection: + if collection.name == container_obj.name: + new = bpy.data.collections.new(obj.name) + new.objects.link(obj) + collection.children.link(new) From 02dc7b5274df6099d9b62adbefe91c80fe0639df Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 17 Jul 2021 21:36:03 +1000 Subject: [PATCH 021/168] The align tool now works on any generic product, not just walls. --- .../blenderbim/bim/module/model/__init__.py | 3 +- .../blenderbim/bim/module/model/product.py | 49 ++++++++++++++- .../blenderbim/bim/module/model/workspace.py | 63 +++++++++++-------- 3 files changed, 87 insertions(+), 28 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 98cb2da069..d23386d63f 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -3,7 +3,8 @@ from . import handler, prop, ui, grid, product, wall, slab, stair, door, window, classes = ( product.AddTypeInstance, - workspace.HotkeyE, + product.AlignProduct, + workspace.Hotkey, wall.JoinWall, wall.AlignWall, wall.FlipWall, diff --git a/src/blenderbim/blenderbim/bim/module/model/product.py b/src/blenderbim/blenderbim/bim/module/model/product.py index 3e84c223ee..5b137c891e 100644 --- a/src/blenderbim/blenderbim/bim/module/model/product.py +++ b/src/blenderbim/blenderbim/bim/module/model/product.py @@ -1,4 +1,5 @@ import bpy +import mathutils import ifcopenshell import ifcopenshell.api import ifcopenshell.util.element @@ -6,7 +7,7 @@ import ifcopenshell.util.representation from . import wall, slab, column from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.pset.data import Data as PsetData -from mathutils import Vector +from mathutils import Vector, Matrix class AddTypeInstance(bpy.types.Operator): @@ -73,6 +74,52 @@ class AddTypeInstance(bpy.types.Operator): return {"FINISHED"} +class AlignProduct(bpy.types.Operator): + bl_idname = "bim.align_product" + bl_label = "Align Wall" + bl_options = {"REGISTER", "UNDO"} + align_type: bpy.props.StringProperty() + + def execute(self, context): + selected_objs = context.selected_objects + if len(selected_objs) < 2 or not context.active_object: + return {"FINISHED"} + if self.align_type == "CENTERLINE": + point = context.active_object.matrix_world @ ( + Vector(context.active_object.bound_box[0]) + (context.active_object.dimensions / 2) + ) + elif self.align_type == "POSITIVE": + point = context.active_object.matrix_world @ Vector(context.active_object.bound_box[6]) + elif self.align_type == "NEGATIVE": + point = context.active_object.matrix_world @ Vector(context.active_object.bound_box[0]) + + active_x_axis = context.active_object.matrix_world.to_quaternion() @ Vector((1, 0, 0)) + active_y_axis = context.active_object.matrix_world.to_quaternion() @ Vector((0, 1, 0)) + active_z_axis = context.active_object.matrix_world.to_quaternion() @ Vector((0, 0, 1)) + + x_distances = self.get_axis_distances(point, active_x_axis) + y_distances = self.get_axis_distances(point, active_y_axis) + if abs(sum(x_distances)) < abs(sum(y_distances)): + for i, obj in enumerate(selected_objs): + obj.matrix_world = Matrix.Translation(active_x_axis * -x_distances[i]) @ obj.matrix_world + else: + for i, obj in enumerate(selected_objs): + obj.matrix_world = Matrix.Translation(active_y_axis * -y_distances[i]) @ obj.matrix_world + return {"FINISHED"} + + def get_axis_distances(self, point, axis): + results = [] + for obj in bpy.context.selected_objects: + if self.align_type == "CENTERLINE": + obj_point = obj.matrix_world @ (Vector(obj.bound_box[0]) + (obj.dimensions / 2)) + elif self.align_type == "POSITIVE": + obj_point = obj.matrix_world @ Vector(obj.bound_box[6]) + elif self.align_type == "NEGATIVE": + obj_point = obj.matrix_world @ Vector(obj.bound_box[0]) + results.append(mathutils.geometry.distance_point_to_plane(obj_point, point, axis)) + return results + + def generate_box(usecase_path, ifc_file, settings): box_context = ifcopenshell.util.representation.get_context(ifc_file, "Model", "Box", "MODEL_VIEW") if not box_context: diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index cc58461146..f14eaf5c35 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -18,26 +18,14 @@ class BimTool(WorkSpaceTool): # ("bim.wall_tool_op", {"type": 'MOUSEMOVE', "value": 'ANY'}, {"properties": []}), # ("mesh.add_wall", {"type": 'LEFTMOUSE', "value": 'PRESS'}, {"properties": []}), ("bim.add_type_instance", {"type": "A", "value": "PRESS", "shift": True}, {"properties": []}), - ("bim.hotkey_e", {"type": "E", "value": "PRESS", "shift": True}, {"properties": []}), + ("bim.hotkey", {"type": "E", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "E")]}), ("bim.join_wall", {"type": "T", "value": "PRESS", "shift": True}, {"properties": [("join_type", "L")]}), ("bim.join_wall", {"type": "Y", "value": "PRESS", "shift": True}, {"properties": [("join_type", "V")]}), ("bim.flip_wall", {"type": "F", "value": "PRESS", "shift": True}, {"properties": []}), ("bim.split_wall", {"type": "S", "value": "PRESS", "shift": True}, {"properties": []}), - ( - "bim.align_wall", - {"type": "X", "value": "PRESS", "shift": True}, - {"properties": [("align_type", "EXTERIOR")]}, - ), - ( - "bim.align_wall", - {"type": "C", "value": "PRESS", "shift": True}, - {"properties": [("align_type", "CENTERLINE")]}, - ), - ( - "bim.align_wall", - {"type": "V", "value": "PRESS", "shift": True}, - {"properties": [("align_type", "INTERIOR")]}, - ), + ("bim.hotkey", {"type": "X", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "X")]}), + ("bim.hotkey", {"type": "C", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "C")]}), + ("bim.hotkey", {"type": "V", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "V")]}), ) def draw_settings(context, layout, tool): @@ -57,22 +45,45 @@ class BimTool(WorkSpaceTool): row.label(text="Mitre", icon="EVENT_Y") row.label(text="Flip", icon="EVENT_F") row.label(text="Split", icon="EVENT_S") - row.label(text="", icon="EVENT_X") - row.label(text="", icon="EVENT_C") - row.label(text="", icon="EVENT_V") - row.label(text="Align") + + row.label(text="", icon="EVENT_X") + row.label(text="", icon="EVENT_C") + row.label(text="", icon="EVENT_V") + row.label(text="Align") -class HotkeyE(bpy.types.Operator): - bl_idname = "bim.hotkey_e" - bl_label = "Hotkey E" +class Hotkey(bpy.types.Operator): + bl_idname = "bim.hotkey" + bl_label = "Hotkey" bl_options = {"REGISTER", "UNDO"} + hotkey: bpy.props.StringProperty() def execute(self, context): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - props = context.scene.BIMTypeProperties - if props.ifc_class == "IfcWallType": - bpy.ops.bim.join_wall(join_type="T") + self.props = context.scene.BIMTypeProperties + getattr(self, f"hotkey_{self.hotkey}")() return {"FINISHED"} + + def hotkey_C(self): + if self.props.ifc_class == "IfcWallType": + bpy.ops.bim.align_wall(align_type="CENTERLINE") + else: + bpy.ops.bim.align_product(align_type="CENTERLINE") + + def hotkey_E(self): + if self.props.ifc_class == "IfcWallType": + bpy.ops.bim.join_wall(join_type="T") + + def hotkey_V(self): + if self.props.ifc_class == "IfcWallType": + bpy.ops.bim.align_wall(align_type="INTERIOR") + else: + bpy.ops.bim.align_product(align_type="POSITIVE") + + def hotkey_X(self): + if self.props.ifc_class == "IfcWallType": + bpy.ops.bim.align_wall(align_type="EXTERIOR") + else: + bpy.ops.bim.align_product(align_type="NEGATIVE") From db62faa5ae6bcf88023591a3c678aca27b10b836 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 18 Jul 2021 09:21:38 +1000 Subject: [PATCH 022/168] Fix #1570. --- src/blenderbim/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile index 70af090dda..9052e23c75 100644 --- a/src/blenderbim/Makefile +++ b/src/blenderbim/Makefile @@ -44,6 +44,8 @@ endif # IfcOpenBot sometimes lags behind, so we hotfix the Python utilities cp -r dist/working/IfcOpenShell-0.6.0/src/ifcopenshell-python/ifcopenshell/util/* dist/blenderbim/libs/site/packages/ifcopenshell/util/ cp -r dist/working/IfcOpenShell-0.6.0/src/ifcopenshell-python/ifcopenshell/api/* dist/blenderbim/libs/site/packages/ifcopenshell/api/ + cp dist/working/IfcOpenShell-0.6.0/src/ifcopenshell-python/ifcopenshell/entity_instance.py dist/blenderbim/libs/site/packages/ifcopenshell/ + cp dist/working/IfcOpenShell-0.6.0/src/ifcopenshell-python/ifcopenshell/file.py dist/blenderbim/libs/site/packages/ifcopenshell/ # Provides bcf functionality cp -r dist/working/IfcOpenShell-0.6.0/src/bcf/bcf dist/blenderbim/libs/site/packages/ # Provides IFCClash functionality From 0fffbac51970f5e0c7929b64c145fe4077fd8d0e Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 18 Jul 2021 09:26:37 +1000 Subject: [PATCH 023/168] Fix #1569. --- .../blenderbim/bim/module/geometry/ui.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/ui.py b/src/blenderbim/blenderbim/bim/module/geometry/ui.py index 83f48fa6d0..0dd608b4e9 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/ui.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/ui.py @@ -40,9 +40,8 @@ class BIM_PT_representations(Panel): row.label(text=representation["ContextOfItems"]["ContextIdentifier"]) row.label(text=representation["ContextOfItems"]["TargetView"]) row.label(text=representation["RepresentationType"]) - op = row.operator( - "bim.switch_representation", icon="OUTLINER_DATA_MESH", text="", should_switch_all_meshes=True - ) + op = row.operator("bim.switch_representation", icon="OUTLINER_DATA_MESH", text="") + op.should_switch_all_meshes = True op.should_reload = True op.ifc_definition_id = ifc_definition_id op.disable_opening_subtractions = False @@ -72,15 +71,13 @@ class BIM_PT_mesh(Panel): props = context.active_object.data.BIMMeshProperties row = layout.row(align=True) - op = row.operator( - "bim.switch_representation", text="Bake Voids", icon="SELECT_SUBTRACT", should_switch_all_meshes=True - ) + op = row.operator("bim.switch_representation", text="Bake Voids", icon="SELECT_SUBTRACT") + op.should_switch_all_meshes=True op.should_reload = True op.ifc_definition_id = props.ifc_definition_id op.disable_opening_subtractions = False - op = row.operator( - "bim.switch_representation", text="Dynamic Voids", icon="SELECT_INTERSECT", should_switch_all_meshes=True - ) + op = row.operator("bim.switch_representation", text="Dynamic Voids", icon="SELECT_INTERSECT") + op.should_switch_all_meshes=True op.should_reload = True op.ifc_definition_id = props.ifc_definition_id op.disable_opening_subtractions = True From 2d6e941c41fd6df201bd45be4fcc0db2033b31fe Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 18 Jul 2021 12:56:49 +1000 Subject: [PATCH 024/168] New documentation for project create_file usecase --- .../ifcopenshell/api/project/create_file.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py b/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py index a353db9d51..bc0bb23ef5 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py @@ -3,12 +3,17 @@ import ifcopenshell class Usecase: - def __init__(self, **settings): - self.settings = {"version": "IFC4"} - for key, value in settings.items(): - self.settings[key] = value + def __init__(self, foobar: ifcopenshell.entity_instance, version: str = "IFC4", foo: str = None, bar: int = 1, baz: float = 0.5): + """Create File - def execute(self): + Create a new IFC file object + + :param version: The schema version of the IFC file. Choose from "IFC2X3" or "IFC4". + :return: file: The created IFC file object. + """ + self.settings = {"version": version} + + def execute(self) -> ifcopenshell.file: self.file = ifcopenshell.file(schema=self.settings["version"]) # TODO: add all metadata, pending bug #747 self.file.wrapped_data.header.file_name.name = "/dev/null" # Hehehe @@ -22,5 +27,5 @@ class Usecase: self.file.wrapped_data.header.file_name.preprocessor_version = "IfcOpenShell {}".format(ifcopenshell.version) self.file.wrapped_data.header.file_name.originating_system = "IfcOpenShell {}".format(ifcopenshell.version) self.file.wrapped_data.header.file_name.authorization = "Nobody" - self.file.wrapped_data.header.file_description.description = ('ViewDefinition[DesignTransferView]',) + self.file.wrapped_data.header.file_description.description = ("ViewDefinition[DesignTransferView]",) return self.file From 8da17cf4a0f3488f5a3ce91c1b30ebfbcb491561 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 18 Jul 2021 12:57:38 +1000 Subject: [PATCH 025/168] New extract docs system to dynamically parse usecases. --- .../ifcopenshell/api/__init__.py | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/ifcopenshell-python/ifcopenshell/api/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/__init__.py index 8343b71e8f..fdfb7d9a5d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/api/__init__.py @@ -97,3 +97,53 @@ def remove_post_listener(usecase_path, name, callback): def remove_all_listeners(): pre_listeners.clear() post_listeners.clear() + + +def extract_docs(module, usecase): + import typing + import inspect + import collections + + results = [] + + inputs = collections.OrderedDict() + + function_init = getattr(getattr(ifcopenshell.api, module), usecase).Usecase.__init__ + function_execute = getattr(getattr(ifcopenshell.api, module), usecase).Usecase.execute + + node_data = {"module": module, "usecase": usecase} + + signature = inspect.signature(function_init) + for name, parameter in signature.parameters.items(): + if name == "self": + continue + inputs[name] = {"name": name} + if not isinstance(parameter.default, object): + inputs[name]["default"] = parameter.default + + type_hints = typing.get_type_hints(function_init) + for name, socket_data in inputs.items(): + type_hint = type_hints[name] + if isinstance(type_hint, typing._UnionGenericAlias): + inputs[name]["type"] = [t.__name__ for t in typing.get_args(type_hint)] + else: + inputs[name]["type"] = type_hint.__name__ + + description = "" + for i, line in enumerate(function_init.__doc__.split("\n")): + line = line.strip() + if i == 0: + node_data["name"] = line + elif line.startswith(":return:"): + node_data["output"] = {"name": line.split(":")[2].strip(), "description": line.split(":")[3].strip()} + elif line.startswith(":param"): + param_name = line.split(":")[1].strip().replace("param ", "") + inputs[param_name]["description"] = line.split(":")[2].strip() + elif i >= 2: + description += line + + if "output" in node_data: + node_data["output"]["type"] = typing.get_type_hints(function_execute)["return"].__name__ + node_data["description"] = description.strip() + node_data["inputs"] = inputs + return node_data From 32062e40854a23febd2527bbaf9475a139104a94 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 18 Jul 2021 12:58:27 +1000 Subject: [PATCH 026/168] Experimental WIP broken Sverchok API node. --- src/ifcsverchok/__init__.py | 1 + src/ifcsverchok/nodes/ifc/api.py | 65 ++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 src/ifcsverchok/nodes/ifc/api.py diff --git a/src/ifcsverchok/__init__.py b/src/ifcsverchok/__init__.py index 5cf6e07600..91890a934a 100644 --- a/src/ifcsverchok/__init__.py +++ b/src/ifcsverchok/__init__.py @@ -43,6 +43,7 @@ def nodes_index(): ("ifc.get_property", "SvIfcGetProperty"), ("ifc.get_attribute", "SvIfcGetAttribute"), ("ifc.select_blender_objects", "SvIfcSelectBlenderObjects"), + ("ifc.api", "SvIfcApi"), ], ) ] diff --git a/src/ifcsverchok/nodes/ifc/api.py b/src/ifcsverchok/nodes/ifc/api.py new file mode 100644 index 0000000000..a4a3aeab13 --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/api.py @@ -0,0 +1,65 @@ +import bpy +import ifcopenshell +import ifcopenshell.api +import ifcsverchok.helper +from bpy.props import StringProperty, EnumProperty +from sverchok.node_tree import SverchCustomTreeNode +from sverchok.data_structure import updateNode +#from blenderbim.bim.module.root.prop import getIfcClasses, getIfcProducts, refreshClasses, refreshPredefinedTypes + + +class SvIfcApi(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): + bl_idname = "SvIfcApi" + bl_label = "IFC API" + usecase: StringProperty(name="Usecase", update=updateNode) + #schema: StringProperty(name="schema", update=updateNode, default="IFC4") + #ifc_product: EnumProperty(items=getIfcProducts, name="Products", update=refreshClasses) + #ifc_class: EnumProperty(items=getIfcClasses, name="Class", update=refreshPredefinedTypes) + #custom_ifc_class: StringProperty(name="Custom Ifc Class", update=updateNode) + + def sv_init(self, context): + self.inputs.new("SvStringsSocket", "usecase").prop_name = "usecase" + #self.inputs.new("SvStringsSocket", "schema").prop_name = "schema" + #self.inputs.new("SvStringsSocket", "ifc_product").prop_name = "ifc_product" + #self.inputs.new("SvStringsSocket", "ifc_class").prop_name = "ifc_class" + #self.inputs.new("SvStringsSocket", "custom_ifc_class").prop_name = "custom_ifc_class" + self.outputs.new("SvVerticesSocket", "file") + + def process(self): + print('process') + #self.sv_input_names = ["file", "ifc_product", "ifc_class", "custom_ifc_class"] + usecase = self.inputs["usecase"].sv_get()[0][0] + if usecase: + self.generate_node(*usecase.split(".")) + self.sv_input_names = ["usecase"] + super().process() + + def generate_node(self, module, usecase): + try: + node_data = ifcopenshell.api.extract_docs(module, usecase) + except: + print("Node not yet implemented:", module, usecase) + return + while len(self.inputs) > 1: + self.inputs.remove(self.inputs[-1]) + + for name, data in node_data["inputs"].items(): + setattr(SvIfcApi, name, StringProperty(name=name)) + self.inputs.new("SvStringsSocket", name).prop_name = name + + #def process_ifc(self, file, ifc_product, ifc_class, custom_ifc_class): + def process_ifc(self, usecase): + print('run') + #self.outputs["file"].sv_set([ifcopenshell.api.run("project.create_file", version=schema)]) + #if custom_ifc_class: + # self.outputs["entity"].sv_set([file.by_type(custom_ifc_class)]) + #else: + # self.outputs["entity"].sv_set([file.by_type(ifc_class)]) + + +def register(): + bpy.utils.register_class(SvIfcApi) + + +def unregister(): + bpy.utils.unregister_class(SvIfcApi) From 9a14406f92555e5422a3f553e5b6a49500f3009d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 18 Jul 2021 14:48:30 +1000 Subject: [PATCH 027/168] BIM tool can now add parametric profiles for beams, not just columns. --- .../blenderbim/bim/module/model/handler.py | 14 ++++---- .../blenderbim/bim/module/model/product.py | 7 ++-- .../module/model/{column.py => profile.py} | 32 +++++++++++-------- 3 files changed, 30 insertions(+), 23 deletions(-) rename src/blenderbim/blenderbim/bim/module/model/{column.py => profile.py} (89%) diff --git a/src/blenderbim/blenderbim/bim/module/model/handler.py b/src/blenderbim/blenderbim/bim/module/model/handler.py index 91f6182871..e24fbac6e3 100644 --- a/src/blenderbim/blenderbim/bim/module/model/handler.py +++ b/src/blenderbim/blenderbim/bim/module/model/handler.py @@ -1,7 +1,7 @@ import bpy import ifcopenshell import ifcopenshell.api -from blenderbim.bim.module.model import product, wall, slab, column +from blenderbim.bim.module.model import product, wall, slab, profile from blenderbim.bim.ifc import IfcStore from bpy.app.handlers import persistent @@ -51,17 +51,17 @@ def load_post(*args): "type.assign_type", "BlenderBIM.DumbSlab.RegenerateFromType", slab.DumbSlabPlaner().regenerate_from_type ) - IfcStore.add_element_listener(column.element_listener) + IfcStore.add_element_listener(profile.element_listener) ifcopenshell.api.add_pre_listener( - "geometry.add_representation", "BlenderBIM.DumbColumn.EnsureSolid", column.ensure_solid + "geometry.add_representation", "BlenderBIM.DumbProfile.EnsureSolid", profile.ensure_solid ) ifcopenshell.api.add_post_listener( "material.edit_profile", - "BlenderBIM.DumbColumn.RegenerateFromProfile", - column.DumbColumnRegenerator().regenerate_from_profile, + "BlenderBIM.DumbProfile.RegenerateFromProfile", + profile.DumbProfileRegenerator().regenerate_from_profile, ) ifcopenshell.api.add_post_listener( "type.assign_type", - "BlenderBIM.DumbColumn.RegenerateFromType", - column.DumbColumnRegenerator().regenerate_from_type, + "BlenderBIM.DumbProfile.RegenerateFromType", + profile.DumbProfileRegenerator().regenerate_from_type, ) diff --git a/src/blenderbim/blenderbim/bim/module/model/product.py b/src/blenderbim/blenderbim/bim/module/model/product.py index 5b137c891e..98355b6dbe 100644 --- a/src/blenderbim/blenderbim/bim/module/model/product.py +++ b/src/blenderbim/blenderbim/bim/module/model/product.py @@ -4,7 +4,7 @@ import ifcopenshell import ifcopenshell.api import ifcopenshell.util.element import ifcopenshell.util.representation -from . import wall, slab, column +from . import wall, slab, profile from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.pset.data import Data as PsetData from mathutils import Vector, Matrix @@ -36,8 +36,9 @@ class AddTypeInstance(bpy.types.Operator): obj = slab.DumbSlabGenerator(self.file.by_id(int(relating_type))).generate() if obj: return {"FINISHED"} - elif ifc_class == "IfcColumnType": - obj = column.DumbColumnGenerator(self.file.by_id(int(relating_type))).generate() + elif ifc_class in ["IfcColumnType", "IfcBeamType"]: + obj = profile.DumbProfileGenerator(self.file.by_id(int(relating_type))).generate() + return {"FINISHED"} if obj: return {"FINISHED"} # A cube diff --git a/src/blenderbim/blenderbim/bim/module/model/column.py b/src/blenderbim/blenderbim/bim/module/model/profile.py similarity index 89% rename from src/blenderbim/blenderbim/bim/module/model/column.py rename to src/blenderbim/blenderbim/bim/module/model/profile.py index deacf754e5..8280f8d1a5 100644 --- a/src/blenderbim/blenderbim/bim/module/model/column.py +++ b/src/blenderbim/blenderbim/bim/module/model/profile.py @@ -31,7 +31,7 @@ def mode_callback(obj, data): return product = IfcStore.get_file().by_id(obj.BIMObjectProperties.ifc_definition_id) parametric = ifcopenshell.util.element.get_psets(product).get("EPset_Parametric") - if not parametric or parametric["Engine"] != "BlenderBIM.DumbColumn": + if not parametric or parametric["Engine"] != "BlenderBIM.DumbProfile": return IfcStore.edited_objs.add(obj) bm = bmesh.from_edit_mesh(obj.data) @@ -43,7 +43,7 @@ def mode_callback(obj, data): def ensure_solid(usecase_path, ifc_file, settings): product = ifc_file.by_id(settings["blender_object"].BIMObjectProperties.ifc_definition_id) parametric = ifcopenshell.util.element.get_psets(product).get("EPset_Parametric") - if not parametric or parametric["Engine"] != "BlenderBIM.DumbColumn": + if not parametric or parametric["Engine"] != "BlenderBIM.DumbProfile": return material = ifcopenshell.util.element.get_material(product) if material and material.is_a("IfcMaterialProfileSetUsage"): @@ -53,7 +53,7 @@ def ensure_solid(usecase_path, ifc_file, settings): settings["ifc_representation_class"] = "IfcExtrudedAreaSolid/IfcMaterialProfileSetUsage" -class DumbColumnGenerator: +class DumbProfileGenerator: def __init__(self, relating_type): self.relating_type = relating_type @@ -75,9 +75,9 @@ class DumbColumnGenerator: def derive_from_cursor(self): self.location = bpy.context.scene.cursor.location - return self.create_column() + return self.create_profile() - def create_column(self): + def create_profile(self): # A cube verts = [ Vector((-1, -1, -1)), @@ -99,17 +99,23 @@ class DumbColumnGenerator: [0, 2, 6, 4], ] - mesh = bpy.data.meshes.new(name="Dumb Column") + mesh = bpy.data.meshes.new(name="Dumb Profile") mesh.from_pydata(verts, edges, faces) - obj = bpy.data.objects.new("Column", mesh) - obj.name = "Column" + obj = bpy.data.objects.new("Profile", mesh) obj.location = self.location if self.collection_obj and self.collection_obj.BIMObjectProperties.ifc_definition_id: obj.location[2] = self.collection_obj.location[2] self.collection.objects.link(obj) - bpy.ops.bim.assign_class( - obj=obj.name, ifc_class="IfcColumn", predefined_type="COLUMN", should_add_representation=False - ) + if self.relating_type.is_a("IfcColumnType"): + obj.name = "Column" + bpy.ops.bim.assign_class( + obj=obj.name, ifc_class="IfcColumn", predefined_type="COLUMN", should_add_representation=False + ) + elif self.relating_type.is_a("IfcBeamType"): + obj.name = "Beam" + bpy.ops.bim.assign_class( + obj=obj.name, ifc_class="IfcBeam", predefined_type="BEAM", should_add_representation=False + ) element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) bpy.ops.bim.assign_type(relating_type=self.relating_type.id(), related_object=obj.name) profile_set_usage = ifcopenshell.util.element.get_material(element) @@ -124,13 +130,13 @@ class DumbColumnGenerator: obj=obj.name, ifc_definition_id=representation.id(), should_reload=True, should_switch_all_meshes=True ) pset = ifcopenshell.api.run("pset.add_pset", self.file, product=element, name="EPset_Parametric") - ifcopenshell.api.run("pset.edit_pset", self.file, pset=pset, properties={"Engine": "BlenderBIM.DumbColumn"}) + ifcopenshell.api.run("pset.edit_pset", self.file, pset=pset, properties={"Engine": "BlenderBIM.DumbProfile"}) MaterialData.load(self.file) obj.select_set(True) return obj -class DumbColumnRegenerator: +class DumbProfileRegenerator: def regenerate_from_profile(self, usecase_path, ifc_file, settings): self.file = IfcStore.get_file() self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) From a968f2b04db518522b42803d44c2f9c2c8200fd5 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 18 Jul 2021 17:20:16 +1000 Subject: [PATCH 028/168] The BIM Tool can now create profiled members. --- src/blenderbim/blenderbim/bim/module/model/product.py | 5 ++--- src/blenderbim/blenderbim/bim/module/model/profile.py | 9 +++++++++ .../ifcopenshell/api/project/create_file.py | 3 +-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/product.py b/src/blenderbim/blenderbim/bim/module/model/product.py index 98355b6dbe..b1909fd9ff 100644 --- a/src/blenderbim/blenderbim/bim/module/model/product.py +++ b/src/blenderbim/blenderbim/bim/module/model/product.py @@ -36,9 +36,8 @@ class AddTypeInstance(bpy.types.Operator): obj = slab.DumbSlabGenerator(self.file.by_id(int(relating_type))).generate() if obj: return {"FINISHED"} - elif ifc_class in ["IfcColumnType", "IfcBeamType"]: + elif ifc_class in ["IfcColumnType", "IfcBeamType", "IfcMemberType"]: obj = profile.DumbProfileGenerator(self.file.by_id(int(relating_type))).generate() - return {"FINISHED"} if obj: return {"FINISHED"} # A cube @@ -77,7 +76,7 @@ class AddTypeInstance(bpy.types.Operator): class AlignProduct(bpy.types.Operator): bl_idname = "bim.align_product" - bl_label = "Align Wall" + bl_label = "Align Product" bl_options = {"REGISTER", "UNDO"} align_type: bpy.props.StringProperty() diff --git a/src/blenderbim/blenderbim/bim/module/model/profile.py b/src/blenderbim/blenderbim/bim/module/model/profile.py index 8280f8d1a5..27240bf9a1 100644 --- a/src/blenderbim/blenderbim/bim/module/model/profile.py +++ b/src/blenderbim/blenderbim/bim/module/model/profile.py @@ -113,9 +113,18 @@ class DumbProfileGenerator: ) elif self.relating_type.is_a("IfcBeamType"): obj.name = "Beam" + obj.rotation_euler[0] = math.pi / 2 + obj.rotation_euler[2] = math.pi / 2 bpy.ops.bim.assign_class( obj=obj.name, ifc_class="IfcBeam", predefined_type="BEAM", should_add_representation=False ) + elif self.relating_type.is_a("IfcMemberType"): + obj.name = "Member" + obj.rotation_euler[0] = math.pi / 2 + obj.rotation_euler[2] = math.pi / 2 + bpy.ops.bim.assign_class( + obj=obj.name, ifc_class="IfcMember", predefined_type="MEMBER", should_add_representation=False + ) element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) bpy.ops.bim.assign_type(relating_type=self.relating_type.id(), related_object=obj.name) profile_set_usage = ifcopenshell.util.element.get_material(element) diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py b/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py index bc0bb23ef5..e8bee98ae1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py @@ -3,7 +3,7 @@ import ifcopenshell class Usecase: - def __init__(self, foobar: ifcopenshell.entity_instance, version: str = "IFC4", foo: str = None, bar: int = 1, baz: float = 0.5): + def __init__(self, version: str = "IFC4"): """Create File Create a new IFC file object @@ -15,7 +15,6 @@ class Usecase: def execute(self) -> ifcopenshell.file: self.file = ifcopenshell.file(schema=self.settings["version"]) - # TODO: add all metadata, pending bug #747 self.file.wrapped_data.header.file_name.name = "/dev/null" # Hehehe self.file.wrapped_data.header.file_name.time_stamp = ( datetime.datetime.utcnow() From 7d17b3170c5291bf20fa6a75e2bb7dc8d5dd29bf Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 19 Jul 2021 19:19:12 +1000 Subject: [PATCH 029/168] New feature to select all of the active IFC element's class --- src/blenderbim/blenderbim/bim/module/root/ui.py | 1 + src/blenderbim/blenderbim/bim/module/search/operator.py | 4 ++-- src/blenderbim/blenderbim/bim/module/search/ui.py | 2 +- src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py | 4 +++- src/ifcopenshell-python/ifcopenshell/api/owner/add_role.py | 4 +++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/root/ui.py b/src/blenderbim/blenderbim/bim/module/root/ui.py index f698b9ca75..c69cf4a9ab 100644 --- a/src/blenderbim/blenderbim/bim/module/root/ui.py +++ b/src/blenderbim/blenderbim/bim/module/root/ui.py @@ -40,6 +40,7 @@ class BIM_PT_class(Panel): name += "[{}]".format(data["PredefinedType"]) row = self.layout.row(align=True) row.label(text=name) + row.operator("bim.select_ifc_class", text="", icon="RESTRICT_SELECT_OFF").ifc_class = data["type"] row.operator("bim.copy_class", icon="DUPLICATE", text="") row.operator("bim.unlink_object", icon="UNLINKED", text="") if IfcStore.get_file().by_id(props.ifc_definition_id).is_a("IfcRoot"): diff --git a/src/blenderbim/blenderbim/bim/module/search/operator.py b/src/blenderbim/blenderbim/bim/module/search/operator.py index f4b938d654..192c4a1786 100644 --- a/src/blenderbim/blenderbim/bim/module/search/operator.py +++ b/src/blenderbim/blenderbim/bim/module/search/operator.py @@ -62,15 +62,15 @@ class SelectIfcClass(bpy.types.Operator): bl_idname = "bim.select_ifc_class" bl_label = "Select IFC Class" bl_options = {"REGISTER", "UNDO"} + ifc_class: bpy.props.StringProperty() def execute(self, context): self.file = IfcStore.get_file() - props = context.scene.BIMSearchProperties for obj in context.visible_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) - if does_keyword_exist(props.ifc_class, element.is_a()): + if does_keyword_exist(self.ifc_class, element.is_a()): obj.select_set(True) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/search/ui.py b/src/blenderbim/blenderbim/bim/module/search/ui.py index a12b4ace6a..8095ae26eb 100644 --- a/src/blenderbim/blenderbim/bim/module/search/ui.py +++ b/src/blenderbim/blenderbim/bim/module/search/ui.py @@ -32,7 +32,7 @@ class BIM_PT_search(Panel): row = self.layout.row(align=True) row.prop(props, "ifc_class", text="", icon="OBJECT_DATA") - row.operator("bim.select_ifc_class", text="", icon="VIEWZOOM") + row.operator("bim.select_ifc_class", text="", icon="VIEWZOOM").ifc_class = props.ifc_class row.operator("bim.colour_by_class", text="", icon="BRUSH_DATA") row = self.layout.row(align=True) diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py b/src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py index 14d2a48fac..4c00df396b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py @@ -6,6 +6,8 @@ class Usecase: self.settings[key] = value def execute(self): + address = self.file.create_entity(self.settings["ifc_class"], "OFFICE") addresses = list(self.settings["assigned_object"].Addresses) if self.settings["assigned_object"].Addresses else [] - addresses.append(self.file.create_entity(self.settings["ifc_class"], "OFFICE")) + addresses.append(address) self.settings["assigned_object"].Addresses = addresses + return address diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/add_role.py b/src/ifcopenshell-python/ifcopenshell/api/owner/add_role.py index a934f927bb..c08a3899db 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/add_role.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/add_role.py @@ -6,6 +6,8 @@ class Usecase: self.settings[key] = value def execute(self): + element = self.file.createIfcActorRole("ARCHITECT") roles = list(self.settings["assigned_object"].Roles) if self.settings["assigned_object"].Roles else [] - roles.append(self.file.createIfcActorRole("ARCHITECT")) + roles.append(element) self.settings["assigned_object"].Roles = roles + return element From e68c57e9ef6e863c0b4eef8350b30efa64e98033 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 19 Jul 2021 20:16:07 +1000 Subject: [PATCH 030/168] Fix bug where reused placements (e.g. from copied objects) were all updated which led to incorrect locations --- .../ifcopenshell/api/geometry/edit_object_placement.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py index bd1191f4c6..4dae72c37e 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py @@ -37,12 +37,10 @@ class Usecase: placement_rel_to = relating_object.ObjectPlacement if hasattr(relating_object, "ObjectPlacement") else None placement = self.file.createIfcLocalPlacement(placement_rel_to, self.get_relative_placement(placement_rel_to)) - if self.settings["product"].ObjectPlacement: - old_placement = self.settings["product"].ObjectPlacement + old_placement = self.settings["product"].ObjectPlacement + if old_placement and len(self.file.get_inverse(old_placement)) == 1: old_placement.PlacementRelTo = None self.settings["product"].ObjectPlacement = None - for inverse in self.file.get_inverse(old_placement): - ifcopenshell.util.element.replace_attribute(inverse, old_placement, placement) ifcopenshell.util.element.remove_deep(self.file, old_placement) self.settings["product"].ObjectPlacement = placement From 7cb163efef50e1349d11c02a904af48dc416108d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 19 Jul 2021 20:16:47 +1000 Subject: [PATCH 031/168] New print object placement debug feature --- .../blenderbim/bim/module/debug/__init__.py | 1 + .../blenderbim/bim/module/debug/operator.py | 11 +++++++++++ src/blenderbim/blenderbim/bim/module/debug/ui.py | 3 +++ 3 files changed, 15 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/debug/__init__.py b/src/blenderbim/blenderbim/bim/module/debug/__init__.py index e13cdf8acc..4522ae260a 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/debug/__init__.py @@ -3,6 +3,7 @@ from . import ui, prop, operator classes = ( operator.PrintIfcFile, + operator.PrintObjectPlacement, operator.ValidateIfcFile, operator.ProfileImportIFC, operator.CreateAllShapes, diff --git a/src/blenderbim/blenderbim/bim/module/debug/operator.py b/src/blenderbim/blenderbim/bim/module/debug/operator.py index b9199db361..a4d2d18a91 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/operator.py +++ b/src/blenderbim/blenderbim/bim/module/debug/operator.py @@ -1,6 +1,7 @@ import bpy import logging import ifcopenshell +import ifcopenshell.util.placement import blenderbim.bim.import_ifc as import_ifc from blenderbim.bim.ifc import IfcStore @@ -191,3 +192,13 @@ class InspectFromObject(bpy.types.Operator): return {"FINISHED"} bpy.ops.bim.inspect_from_step_id(step_id=ifc_definition_id) return {"FINISHED"} + + +class PrintObjectPlacement(bpy.types.Operator): + bl_idname = "bim.print_object_placement" + bl_label = "Print Object Placement" + step_id: bpy.props.IntProperty() + + def execute(self, context): + print(ifcopenshell.util.placement.get_local_placement(IfcStore.get_file().by_id(self.step_id))) + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/debug/ui.py b/src/blenderbim/blenderbim/bim/module/debug/ui.py index 5519f6dd86..b91212c283 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/ui.py +++ b/src/blenderbim/blenderbim/bim/module/debug/ui.py @@ -59,6 +59,9 @@ class BIM_PT_debug(Panel): if attribute.name == "GlobalId": op = row.operator("bim.select_global_id", icon="RESTRICT_SELECT_OFF", text="") op.global_id = attribute.string_value + if attribute.name == "ObjectPlacement": + op = row.operator("bim.print_object_placement", icon="TRACKER", text="") + op.step_id = attribute.int_value if attribute.int_value: row.operator( "bim.inspect_from_step_id", icon="DISCLOSURE_TRI_RIGHT", text="" From 8ba1b1c9b4ab9684bb143ec0eeb87687d36ab82f Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 19 Jul 2021 21:22:54 +1000 Subject: [PATCH 032/168] New script to generate a demo project asset library --- src/blenderbim/generate_demo_library.py | 82 +++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/blenderbim/generate_demo_library.py diff --git a/src/blenderbim/generate_demo_library.py b/src/blenderbim/generate_demo_library.py new file mode 100644 index 0000000000..3babcd4184 --- /dev/null +++ b/src/blenderbim/generate_demo_library.py @@ -0,0 +1,82 @@ +import ifcopenshell +import ifcopenshell.api +import ifcopenshell.util.element + + +class LibraryGenerator: + def generate(self): + self.file = ifcopenshell.api.run("project.create_file") + self.project = ifcopenshell.api.run( + "root.create_entity", self.file, ifc_class="IfcProjectLibrary", name="BlenderBIM Demo Library" + ) + ifcopenshell.api.run("unit.assign_unit", self.file, length={"is_metric": True, "raw": "METERS"}) + + self.material = ifcopenshell.api.run("material.add_material", self.file, name="Unknown") + self.create_wall_type("DEMO50", 0.05) + self.create_wall_type("DEMO100", 0.1) + self.create_wall_type("DEMO200", 0.2) + self.create_wall_type("DEMO300", 0.3) + + profile = self.file.create_entity("IfcRectangleProfileDef", ProfileType="AREA", XDim=0.5, YDim=0.6) + self.create_profile_type("IfcColumnType", "DEMO1", profile) + + profile = self.file.create_entity( + "IfcCircleHollowProfileDef", ProfileType="AREA", Radius=0.25, WallThickness=0.005 + ) + self.create_profile_type("IfcColumnType", "DEMO2", profile) + + profile = self.file.create_entity( + "IfcRectangleHollowProfileDef", + ProfileType="AREA", + XDim=0.075, + YDim=0.15, + WallThickness=0.005, + InnerFilletRadius=0.005, + OuterFilletRadius=0.005, + ) + self.create_profile_type("IfcColumnType", "DEMO3", profile) + + profile = self.file.create_entity( + "IfcIShapeProfileDef", + ProfileType="AREA", + OverallWidth=0.1, + OverallDepth=0.2, + WebThickness=0.005, + FlangeThickness=0.01, + FilletRadius=0.005, + ) + self.create_profile_type("IfcBeamType", "DEMO1", profile) + + profile = self.file.create_entity( + "IfcCShapeProfileDef", + ProfileType="AREA", + Depth=0.2, + Width=0.1, + WallThickness=0.0015, + Girth=0.03, + InternalFilletRadius=0.005, + ) + self.create_profile_type("IfcBeamType", "DEMO2", profile) + + self.file.write("blenderbim-demo-library.ifc") + + def create_wall_type(self, name, thickness): + wall = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcWallType", name=name) + ifcopenshell.api.run("material.assign_material", self.file, product=wall, type="IfcMaterialLayerSet") + layer_set = ifcopenshell.util.element.get_material(wall) + layer = ifcopenshell.api.run("material.add_layer", self.file, layer_set=layer_set, material=self.material) + layer.LayerThickness = thickness + ifcopenshell.api.run("project.assign_declaration", self.file, definition=wall, relating_context=self.project) + + def create_profile_type(self, ifc_class, name, profile): + element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name) + ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialProfileSet") + profile_set = ifcopenshell.util.element.get_material(element) + material_profile = ifcopenshell.api.run( + "material.add_profile", self.file, profile_set=profile_set, material=self.material + ) + ifcopenshell.api.run("material.assign_profile", self.file, material_profile=material_profile, profile=profile) + ifcopenshell.api.run("project.assign_declaration", self.file, definition=element, relating_context=self.project) + + +LibraryGenerator().generate() From 023eb719f5b242afba548381acc1f451d7388ffe Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 19 Jul 2021 21:35:20 +1000 Subject: [PATCH 033/168] Added profiles of more specialised profile subtypes are now supported. --- src/blenderbim/blenderbim/bim/module/material/prop.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/material/prop.py b/src/blenderbim/blenderbim/bim/module/material/prop.py index 088a5c7962..9373737ab1 100644 --- a/src/blenderbim/blenderbim/bim/module/material/prop.py +++ b/src/blenderbim/blenderbim/bim/module/material/prop.py @@ -49,6 +49,11 @@ def getParameterizedProfileClasses(self, context): (t.name(), t.name(), "") for t in IfcStore.get_schema().declaration_by_name("IfcParameterizedProfileDef").subtypes() ] + for ifc_class in parameterizedprofileclasses_enum: + parameterizedprofileclasses_enum.extend([ + (t.name(), t.name(), "") + for t in IfcStore.get_schema().declaration_by_name(ifc_class[0]).subtypes() or [] + ]) return parameterizedprofileclasses_enum From f14d349be04129d9f5fb4bb3f99b98a2d4b4f7bf Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 20 Jul 2021 09:50:46 +1000 Subject: [PATCH 034/168] Fix bug where psets didn't show up for non element types like 2X3 door styles. --- src/ifcopenshell-python/ifcopenshell/api/pset/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/data.py b/src/ifcopenshell-python/ifcopenshell/api/pset/data.py index 0ea2bc6f21..0800938da4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/data.py @@ -22,7 +22,7 @@ class Data: return product = file.by_id(product_id) cls.products[product_id] = {"psets": set(), "qtos": set()} - if product.is_a("IfcElementType"): + if product.is_a("IfcTypeObject"): cls.add_type_product_psets(product, product_id) elif product.is_a("IfcMaterialDefinition"): cls.add_material_psets(product, product_id) From 45748877097a02278e39787244d1cc2773a6fea8 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 20 Jul 2021 23:01:16 +1000 Subject: [PATCH 035/168] Fix bug where editing multiple objects didn't synchronise changes when exporting. --- src/blenderbim/blenderbim/bim/handler.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/handler.py b/src/blenderbim/blenderbim/bim/handler.py index 6d7ec1f8f7..2fb88a6df6 100644 --- a/src/blenderbim/blenderbim/bim/handler.py +++ b/src/blenderbim/blenderbim/bim/handler.py @@ -13,6 +13,8 @@ global_subscription_owner = object() def mode_callback(obj, data): + if not bpy.context.scene.BIMProjectProperties.is_authoring: + return objects = bpy.context.selected_objects if bpy.context.active_object: objects += [bpy.context.active_object] @@ -22,9 +24,8 @@ def mode_callback(obj, data): or not obj.data or not isinstance(obj.data, (bpy.types.Mesh, bpy.types.Curve, bpy.types.TextCurve)) or not obj.BIMObjectProperties.ifc_definition_id - or not bpy.context.scene.BIMProjectProperties.is_authoring ): - return + continue if obj.data.BIMMeshProperties.ifc_definition_id: representation = IfcStore.get_file().by_id(obj.data.BIMMeshProperties.ifc_definition_id) if representation.RepresentationType in ["Tessellation", "Brep", "Annotation2D"]: From 6e0a443ccab16cf90c8cd972ddf866c9069f2257 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 21 Jul 2021 08:58:57 +1000 Subject: [PATCH 036/168] Fix bug where the covetool module didn't detect skylights properly. See #967. --- src/blenderbim/blenderbim/bim/module/covetool/operator.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/covetool/operator.py b/src/blenderbim/blenderbim/bim/module/covetool/operator.py index 11f0b5efa8..9351b5106c 100644 --- a/src/blenderbim/blenderbim/bim/module/covetool/operator.py +++ b/src/blenderbim/blenderbim/bim/module/covetool/operator.py @@ -197,5 +197,4 @@ class RunAnalysis(bpy.types.Operator): return True def is_window_skylight(self, element): - predefined_type = element.get_info().get("PredefinedType") - return predefined_type and predefined_type.string_value == "SKYLIGHT" + return element.get_info().get("PredefinedType") == "SKYLIGHT" From a7252273b4c0e9e214ce65961839f2bdc98d82f8 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 21 Jul 2021 10:41:29 +1000 Subject: [PATCH 037/168] Fix bug where searching a GlobalId wouldn't work if you previously used the debug panel. --- src/blenderbim/blenderbim/bim/module/search/ui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/search/ui.py b/src/blenderbim/blenderbim/bim/module/search/ui.py index 8095ae26eb..c45339201f 100644 --- a/src/blenderbim/blenderbim/bim/module/search/ui.py +++ b/src/blenderbim/blenderbim/bim/module/search/ui.py @@ -28,7 +28,7 @@ class BIM_PT_search(Panel): row = self.layout.row(align=True) row.prop(props, "global_id", text="", icon="TRACKER") - row.operator("bim.select_global_id", text="", icon="VIEWZOOM") + row.operator("bim.select_global_id", text="", icon="VIEWZOOM").global_id = props.global_id row = self.layout.row(align=True) row.prop(props, "ifc_class", text="", icon="OBJECT_DATA") From c40fd917304cee4972645988f715a40e1305b739 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 21 Jul 2021 10:41:59 +1000 Subject: [PATCH 038/168] New feature where you can select related objects from an actively selected type. --- .../blenderbim/bim/module/type/__init__.py | 1 + .../blenderbim/bim/module/type/operator.py | 17 ++++++++++++ .../blenderbim/bim/module/type/ui.py | 26 ++++++++++++++----- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/type/__init__.py b/src/blenderbim/blenderbim/bim/module/type/__init__.py index dc1afcd7e2..e55172a517 100644 --- a/src/blenderbim/blenderbim/bim/module/type/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/type/__init__.py @@ -7,6 +7,7 @@ classes = ( operator.EnableEditingType, operator.DisableEditingType, operator.SelectSimilarType, + operator.SelectTypeObjects, prop.BIMTypeProperties, prop.BIMTypeObjectProperties, ui.BIM_PT_type, diff --git a/src/blenderbim/blenderbim/bim/module/type/operator.py b/src/blenderbim/blenderbim/bim/module/type/operator.py index 7016be6f74..c3d9ee2b8b 100644 --- a/src/blenderbim/blenderbim/bim/module/type/operator.py +++ b/src/blenderbim/blenderbim/bim/module/type/operator.py @@ -133,3 +133,20 @@ class SelectSimilarType(bpy.types.Operator): if obj.BIMObjectProperties.ifc_definition_id in related_objects: obj.select_set(True) return {"FINISHED"} + + +class SelectTypeObjects(bpy.types.Operator): + bl_idname = "bim.select_type_objects" + bl_label = "Select Type Objects" + bl_options = {"REGISTER", "UNDO"} + relating_type: bpy.props.StringProperty() + + def execute(self, context): + self.file = IfcStore.get_file() + relating_type = bpy.data.objects.get(self.relating_type) if self.relating_type else bpy.context.active_object + oprops = relating_type.BIMObjectProperties + related_objects = Data.types[oprops.ifc_definition_id] + for obj in bpy.context.visible_objects: + if obj.BIMObjectProperties.ifc_definition_id in related_objects: + obj.select_set(True) + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/type/ui.py b/src/blenderbim/blenderbim/bim/module/type/ui.py index 564afbc969..b5ad10687d 100644 --- a/src/blenderbim/blenderbim/bim/module/type/ui.py +++ b/src/blenderbim/blenderbim/bim/module/type/ui.py @@ -17,20 +17,32 @@ class BIM_PT_type(Panel): return False if not IfcStore.get_element(props.ifc_definition_id): return False - if props.ifc_definition_id not in Data.products: + if props.ifc_definition_id not in Data.products and props.ifc_definition_id not in Data.types: Data.load(IfcStore.get_file(), props.ifc_definition_id) - if not Data.products[props.ifc_definition_id]: + if props.ifc_definition_id not in Data.products and props.ifc_definition_id not in Data.types: + return False + if not Data.products.get(props.ifc_definition_id, None) and not Data.types.get(props.ifc_definition_id, None): return False return True - def draw(self, context): + oprops = context.active_object.BIMObjectProperties + + if oprops.ifc_definition_id in Data.products: + self.draw_product_ui(context) + else: + self.draw_type_ui(context) + + def draw_type_ui(self, context): + props = context.active_object.BIMTypeProperties + oprops = context.active_object.BIMObjectProperties + row = self.layout.row(align=True) + row.label(text=f"{len(Data.types[oprops.ifc_definition_id])} Typed Objects") + row.operator("bim.select_type_objects", icon="RESTRICT_SELECT_OFF", text="") + + def draw_product_ui(self, context): props = context.active_object.BIMTypeProperties oprops = context.active_object.BIMObjectProperties - if not oprops.ifc_definition_id: - return - if oprops.ifc_definition_id not in Data.products: - Data.load(IfcStore.get_file(), oprops.ifc_definition_id) if props.is_editing_type: row = self.layout.row(align=True) From c4f3633ab8e263c20a73005cf425524c682e6f1b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 21 Jul 2021 17:05:02 +1000 Subject: [PATCH 039/168] Property and quantity sets are now shown in alphabetical order to be much less confusing. --- src/blenderbim/blenderbim/bim/module/pset/ui.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/pset/ui.py b/src/blenderbim/blenderbim/bim/module/pset/ui.py index f3f257b8bb..e46aabc048 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/ui.py +++ b/src/blenderbim/blenderbim/bim/module/pset/ui.py @@ -122,8 +122,8 @@ class BIM_PT_object_psets(Panel): op.obj = context.active_object.name op.obj_type = "Object" - for pset_id in Data.products[oprops.ifc_definition_id]["psets"]: - pset = Data.psets[pset_id] + psets = [(pset_id, Data.psets[pset_id]) for pset_id in Data.products[oprops.ifc_definition_id]["psets"]] + for pset_id, pset in sorted(psets, key = lambda v: v[1]["Name"]): draw_psetqto_ui(context, pset_id, pset, props, self.layout, "Object") # TODO reimplement. See #1222. @@ -165,8 +165,8 @@ class BIM_PT_object_qtos(Panel): row.prop(props, "qto_name", text="") row.operator("bim.add_qto", icon="ADD", text="") - for qto_id in Data.products[oprops.ifc_definition_id]["qtos"]: - qto = Data.qtos[qto_id] + qtos = [(qto_id, Data.qtos[qto_id]) for qto_id in Data.products[oprops.ifc_definition_id]["qtos"]] + for qto_id, qto in sorted(qtos, key = lambda v: v[1]["Name"]): draw_psetqto_ui(context, qto_id, qto, props, self.layout, "Object") @@ -207,6 +207,6 @@ class BIM_PT_material_psets(Panel): op.obj = context.active_object.active_material.name op.obj_type = "Material" - for pset_id in Data.products[oprops.ifc_definition_id]["psets"]: - pset = Data.psets[pset_id] + psets = [(pset_id, Data.psets[pset_id]) for pset_id in Data.products[oprops.ifc_definition_id]["psets"]] + for pset_id, pset in sorted(psets, key = lambda v: v[1]["Name"]): draw_psetqto_ui(context, pset_id, pset, props, self.layout, "Material") From 1c71af058fd5a29ffafe64ceae62fdea356b6155 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 22 Jul 2021 13:22:23 +1000 Subject: [PATCH 040/168] Fix bug where date conversions fail if IFC2X3 seconds have fractions --- src/ifcopenshell-python/ifcopenshell/util/date.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/date.py b/src/ifcopenshell-python/ifcopenshell/util/date.py index c14fff1221..cea6e1e474 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/date.py +++ b/src/ifcopenshell-python/ifcopenshell/util/date.py @@ -42,7 +42,7 @@ def ifc2datetime(element): element.DateComponent.DayComponent, element.TimeComponent.HourComponent, element.TimeComponent.MinuteComponent, - element.TimeComponent.SecondComponent, + int(element.TimeComponent.SecondComponent), # TODO: implement TimeComponent timezone ) elif element.is_a("IfcCalendarDate"): From 8071e079b37c3ced99768a87a1aeaf83aa93ce3d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 22 Jul 2021 17:40:50 +1000 Subject: [PATCH 041/168] New system module with UI to browse systems in an IFC. --- src/blenderbim/blenderbim/bim/__init__.py | 1 + .../blenderbim/bim/module/system/__init__.py | 27 +++ .../blenderbim/bim/module/system/operator.py | 196 ++++++++++++++++++ .../blenderbim/bim/module/system/prop.py | 26 +++ .../blenderbim/bim/module/system/ui.py | 85 ++++++++ .../ifcopenshell/api/system/add_system.py | 17 ++ .../ifcopenshell/api/system/assign_system.py | 27 +++ .../ifcopenshell/api/system/data.py | 24 +++ .../ifcopenshell/api/system/edit_system.py | 13 ++ .../ifcopenshell/api/system/remove_system.py | 11 + .../api/system/unassign_system.py | 25 +++ .../ifcopenshell/api/type/data.py | 26 ++- 12 files changed, 476 insertions(+), 2 deletions(-) create mode 100644 src/blenderbim/blenderbim/bim/module/system/__init__.py create mode 100644 src/blenderbim/blenderbim/bim/module/system/operator.py create mode 100644 src/blenderbim/blenderbim/bim/module/system/prop.py create mode 100644 src/blenderbim/blenderbim/bim/module/system/ui.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/system/add_system.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/system/assign_system.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/system/data.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/system/edit_system.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/system/remove_system.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/system/unassign_system.py diff --git a/src/blenderbim/blenderbim/bim/__init__.py b/src/blenderbim/blenderbim/bim/__init__.py index 6f1531121c..d62f3e9e12 100644 --- a/src/blenderbim/blenderbim/bim/__init__.py +++ b/src/blenderbim/blenderbim/bim/__init__.py @@ -29,6 +29,7 @@ if bpy is not None: "cost": None, "sequence": None, "group": None, + "system": None, "structural": None, "boundary": None, "material": None, diff --git a/src/blenderbim/blenderbim/bim/module/system/__init__.py b/src/blenderbim/blenderbim/bim/module/system/__init__.py new file mode 100644 index 0000000000..0059a29f4d --- /dev/null +++ b/src/blenderbim/blenderbim/bim/module/system/__init__.py @@ -0,0 +1,27 @@ +import bpy +from . import ui, prop, operator + +classes = ( + operator.LoadSystems, + operator.DisableSystemEditingUI, + operator.AddSystem, + operator.EditSystem, + operator.RemoveSystem, + operator.AssignSystem, + operator.UnassignSystem, + operator.EnableEditingSystem, + operator.DisableEditingSystem, + operator.SelectSystemProducts, + prop.System, + prop.BIMSystemProperties, + ui.BIM_PT_systems, + ui.BIM_UL_systems, +) + + +def register(): + bpy.types.Scene.BIMSystemProperties = bpy.props.PointerProperty(type=prop.BIMSystemProperties) + + +def unregister(): + del bpy.types.Scene.BIMSystemProperties diff --git a/src/blenderbim/blenderbim/bim/module/system/operator.py b/src/blenderbim/blenderbim/bim/module/system/operator.py new file mode 100644 index 0000000000..da5a714f09 --- /dev/null +++ b/src/blenderbim/blenderbim/bim/module/system/operator.py @@ -0,0 +1,196 @@ +import bpy +import ifcopenshell.util.attribute +import ifcopenshell.api +from blenderbim.bim.ifc import IfcStore +from ifcopenshell.api.system.data import Data + + +class LoadSystems(bpy.types.Operator): + bl_idname = "bim.load_systems" + bl_label = "Load Systems" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + props = context.scene.BIMSystemProperties + while len(props.systems) > 0: + props.systems.remove(0) + for ifc_definition_id, system in Data.systems.items(): + new = props.systems.add() + new.ifc_definition_id = ifc_definition_id + new.name = system["Name"] + props.is_editing = True + bpy.ops.bim.disable_editing_system() + return {"FINISHED"} + + +class DisableSystemEditingUI(bpy.types.Operator): + bl_idname = "bim.disable_system_editing_ui" + bl_label = "Disable System Editing UI" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + context.scene.BIMSystemProperties.is_editing = False + return {"FINISHED"} + + +class AddSystem(bpy.types.Operator): + bl_idname = "bim.add_system" + bl_label = "Add System" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + result = ifcopenshell.api.run("system.add_system", IfcStore.get_file()) + Data.load(IfcStore.get_file()) + bpy.ops.bim.load_systems() + bpy.ops.bim.enable_editing_system(system=result.id()) + return {"FINISHED"} + + +class EditSystem(bpy.types.Operator): + bl_idname = "bim.edit_system" + bl_label = "Edit System" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + props = context.scene.BIMSystemProperties + attributes = {} + for attribute in props.system_attributes: + if attribute.is_null: + attributes[attribute.name] = None + else: + attributes[attribute.name] = attribute.string_value + self.file = IfcStore.get_file() + ifcopenshell.api.run( + "system.edit_system", self.file, **{"system": self.file.by_id(props.active_system_id), "attributes": attributes} + ) + Data.load(IfcStore.get_file()) + bpy.ops.bim.load_systems() + return {"FINISHED"} + + +class RemoveSystem(bpy.types.Operator): + bl_idname = "bim.remove_system" + bl_label = "Remove System" + bl_options = {"REGISTER", "UNDO"} + system: bpy.props.IntProperty() + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + props = context.scene.BIMSystemProperties + self.file = IfcStore.get_file() + ifcopenshell.api.run("system.remove_system", self.file, **{"system": self.file.by_id(self.system)}) + Data.load(IfcStore.get_file()) + bpy.ops.bim.load_systems() + return {"FINISHED"} + + +class EnableEditingSystem(bpy.types.Operator): + bl_idname = "bim.enable_editing_system" + bl_label = "Enable Editing System" + bl_options = {"REGISTER", "UNDO"} + system: bpy.props.IntProperty() + + def execute(self, context): + props = context.scene.BIMSystemProperties + while len(props.system_attributes) > 0: + props.system_attributes.remove(0) + + data = Data.systems[self.system] + + for attribute in IfcStore.get_schema().declaration_by_name("IfcSystem").all_attributes(): + data_type = ifcopenshell.util.attribute.get_primitive_type(attribute) + if data_type == "entity": + continue + new = props.system_attributes.add() + new.name = attribute.name() + new.is_null = data[attribute.name()] is None + new.is_optional = attribute.optional() + new.string_value = "" if new.is_null else data[attribute.name()] + props.active_system_id = self.system + return {"FINISHED"} + + +class DisableEditingSystem(bpy.types.Operator): + bl_idname = "bim.disable_editing_system" + bl_label = "Disable Editing System" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + context.scene.BIMSystemProperties.active_system_id = 0 + return {"FINISHED"} + + +class AssignSystem(bpy.types.Operator): + bl_idname = "bim.assign_system" + bl_label = "Assign System" + bl_options = {"REGISTER", "UNDO"} + product: bpy.props.StringProperty() + system: bpy.props.IntProperty() + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + product = bpy.data.objects.get(self.product) if self.product else context.active_object + self.file = IfcStore.get_file() + ifcopenshell.api.run( + "system.assign_system", + self.file, + **{ + "product": self.file.by_id(product.BIMObjectProperties.ifc_definition_id), + "system": self.file.by_id(self.system), + } + ) + Data.load(IfcStore.get_file()) + return {"FINISHED"} + + +class UnassignSystem(bpy.types.Operator): + bl_idname = "bim.unassign_system" + bl_label = "Unassign System" + bl_options = {"REGISTER", "UNDO"} + product: bpy.props.StringProperty() + system: bpy.props.IntProperty() + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + product = bpy.data.objects.get(self.product) if self.product else context.active_object + self.file = IfcStore.get_file() + ifcopenshell.api.run( + "system.unassign_system", + self.file, + **{ + "product": self.file.by_id(product.BIMObjectProperties.ifc_definition_id), + "system": self.file.by_id(self.system), + } + ) + Data.load(IfcStore.get_file()) + return {"FINISHED"} + + +class SelectSystemProducts(bpy.types.Operator): + bl_idname = "bim.select_system_products" + bl_label = "Select System Products" + bl_options = {"REGISTER", "UNDO"} + system: bpy.props.IntProperty() + + def execute(self, context): + self.file = IfcStore.get_file() + for obj in bpy.context.visible_objects: + obj.select_set(False) + if not obj.BIMObjectProperties.ifc_definition_id: + continue + product_systems = Data.products.get(obj.BIMObjectProperties.ifc_definition_id, []) + if self.system in product_systems: + obj.select_set(True) + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/system/prop.py b/src/blenderbim/blenderbim/bim/module/system/prop.py new file mode 100644 index 0000000000..5bed5a3fd9 --- /dev/null +++ b/src/blenderbim/blenderbim/bim/module/system/prop.py @@ -0,0 +1,26 @@ +import bpy +from blenderbim.bim.prop import StrProperty, Attribute +from bpy.types import PropertyGroup +from bpy.props import ( + PointerProperty, + StringProperty, + EnumProperty, + BoolProperty, + IntProperty, + FloatProperty, + FloatVectorProperty, + CollectionProperty, +) + + +class System(PropertyGroup): + name: StringProperty(name="Name") + ifc_definition_id: IntProperty(name="IFC Definition ID") + + +class BIMSystemProperties(PropertyGroup): + system_attributes: CollectionProperty(name="System Attributes", type=Attribute) + is_editing: BoolProperty(name="Is Editing", default=False) + systems: CollectionProperty(name="Systems", type=System) + active_system_index: IntProperty(name="Active System Index") + active_system_id: IntProperty(name="Active System Id") diff --git a/src/blenderbim/blenderbim/bim/module/system/ui.py b/src/blenderbim/blenderbim/bim/module/system/ui.py new file mode 100644 index 0000000000..067dd038fc --- /dev/null +++ b/src/blenderbim/blenderbim/bim/module/system/ui.py @@ -0,0 +1,85 @@ +from bpy.types import Panel, UIList +from blenderbim.bim.ifc import IfcStore +from ifcopenshell.api.system.data import Data + + +class BIM_PT_systems(Panel): + bl_label = "IFC Systems" + bl_idname = "BIM_PT_systems" + bl_options = {"DEFAULT_CLOSED"} + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "scene" + + @classmethod + def poll(cls, context): + return IfcStore.get_file() + + def draw(self, context): + if not Data.is_loaded: + Data.load(IfcStore.get_file()) + self.props = context.scene.BIMSystemProperties + + row = self.layout.row(align=True) + row.label(text="{} Systems Found".format(len(Data.systems)), icon="OUTLINER") + if self.props.is_editing: + row.operator("bim.add_system", text="", icon="ADD") + row.operator("bim.disable_system_editing_ui", text="", icon="CANCEL") + else: + row.operator("bim.load_systems", text="", icon="GREASEPENCIL") + + if self.props.is_editing: + self.layout.template_list( + "BIM_UL_systems", + "", + self.props, + "systems", + self.props, + "active_system_index", + ) + + if self.props.active_system_id: + self.draw_editable_ui(context) + + def draw_editable_ui(self, context): + for attribute in self.props.system_attributes: + row = self.layout.row(align=True) + row.prop(attribute, "string_value", text=attribute.name) + if attribute.is_optional: + row.prop(attribute, "is_null", icon="RADIOBUT_OFF" if attribute.is_null else "RADIOBUT_ON", text="") + + + +class BIM_UL_systems(UIList): + def draw_item(self, context, layout, data, item, icon, active_data, active_propname): + if item: + row = layout.row(align=True) + row.label(text=item.name) + + if context.active_object: + oprops = context.active_object.BIMObjectProperties + if ( + oprops.ifc_definition_id in Data.products + and item.ifc_definition_id in Data.products[oprops.ifc_definition_id] + ): + op = row.operator("bim.unassign_system", text="", icon="KEYFRAME_HLT", emboss=False) + op.system = item.ifc_definition_id + else: + op = row.operator("bim.assign_system", text="", icon="KEYFRAME", emboss=False) + op.system = item.ifc_definition_id + + if context.scene.BIMSystemProperties.active_system_id == item.ifc_definition_id: + op = row.operator("bim.select_system_products", text="", icon="RESTRICT_SELECT_OFF") + op.system = item.ifc_definition_id + row.operator("bim.edit_system", text="", icon="CHECKMARK") + row.operator("bim.disable_editing_system", text="", icon="CANCEL") + elif context.scene.BIMSystemProperties.active_system_id: + op = row.operator("bim.select_system_products", text="", icon="RESTRICT_SELECT_OFF") + op.system = item.ifc_definition_id + row.operator("bim.remove_system", text="", icon="X").system = item.ifc_definition_id + else: + op = row.operator("bim.select_system_products", text="", icon="RESTRICT_SELECT_OFF") + op.system = item.ifc_definition_id + op = row.operator("bim.enable_editing_system", text="", icon="GREASEPENCIL") + op.system = item.ifc_definition_id + row.operator("bim.remove_system", text="", icon="X").system = item.ifc_definition_id diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/add_system.py b/src/ifcopenshell-python/ifcopenshell/api/system/add_system.py new file mode 100644 index 0000000000..b3226724c5 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/system/add_system.py @@ -0,0 +1,17 @@ +import ifcopenshell +import ifcopenshell.api + + +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + return self.file.create_entity("IfcSystem", **{ + "GlobalId": ifcopenshell.guid.new(), + "OwnerHistory": ifcopenshell.api.run("owner.create_owner_history", self.file), + "Name": "Unnamed" + }) diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/assign_system.py b/src/ifcopenshell-python/ifcopenshell/api/system/assign_system.py new file mode 100644 index 0000000000..265afac4bd --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/system/assign_system.py @@ -0,0 +1,27 @@ +import ifcopenshell +import ifcopenshell.api + + +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = { + "product": None, + "system": None, + } + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + if not self.settings["system"].IsGroupedBy: + return self.file.create_entity("IfcRelAssignsToGroup", **{ + "GlobalId": ifcopenshell.guid.new(), + "OwnerHistory": ifcopenshell.api.run("owner.create_owner_history", self.file), + "RelatedObjects": [self.settings["product"]], + "RelatingGroup": self.settings["system"] + }) + rel = self.settings["system"].IsGroupedBy[0] + related_objects = set(rel.RelatedObjects) or set() + related_objects.add(self.settings["product"]) + rel.RelatedObjects = list(related_objects) + ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": rel}) diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/data.py b/src/ifcopenshell-python/ifcopenshell/api/system/data.py new file mode 100644 index 0000000000..2a171f6a50 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/system/data.py @@ -0,0 +1,24 @@ +class Data: + is_loaded = False + products = {} + systems = {} + + @classmethod + def purge(cls): + cls.is_loaded = False + cls.products = {} + cls.systems = {} + + @classmethod + def load(cls, file): + cls.products = {} + cls.systems = {} + for system in file.by_type("IfcSystem", include_subtypes=False): + if system.IsGroupedBy: + for rel in system.IsGroupedBy: + for product in rel.RelatedObjects: + cls.products.setdefault(product.id(), []).append(system.id()) + data = system.get_info() + del data["OwnerHistory"] + cls.systems[system.id()] = data + cls.is_loaded=True diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/edit_system.py b/src/ifcopenshell-python/ifcopenshell/api/system/edit_system.py new file mode 100644 index 0000000000..734e9937c3 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/system/edit_system.py @@ -0,0 +1,13 @@ +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = { + "system": None, + "attributes": {} + } + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + for name, value in self.settings["attributes"].items(): + setattr(self.settings["system"], name, value) diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/remove_system.py b/src/ifcopenshell-python/ifcopenshell/api/system/remove_system.py new file mode 100644 index 0000000000..9cc1a6ec93 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/system/remove_system.py @@ -0,0 +1,11 @@ +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {"system": None} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + for rel in self.settings["system"].IsGroupedBy or []: + self.file.remove(rel) + self.file.remove(self.settings["system"]) diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/unassign_system.py b/src/ifcopenshell-python/ifcopenshell/api/system/unassign_system.py new file mode 100644 index 0000000000..d072f74623 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/system/unassign_system.py @@ -0,0 +1,25 @@ +import ifcopenshell +import ifcopenshell.api + + +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = { + "product": None, + "system": None, + } + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + if not self.settings["system"].IsGroupedBy: + return + rel = self.settings["system"].IsGroupedBy[0] + related_objects = set(rel.RelatedObjects) or set() + related_objects.remove(self.settings["product"]) + if len(related_objects): + rel.RelatedObjects = list(related_objects) + ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": rel}) + else: + self.file.remove(rel) diff --git a/src/ifcopenshell-python/ifcopenshell/api/type/data.py b/src/ifcopenshell-python/ifcopenshell/api/type/data.py index ac8cd509aa..c768bd6cf2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/type/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/type/data.py @@ -1,18 +1,40 @@ class Data: products = {} + types = {} @classmethod def purge(cls): cls.products = {} + cls.types = {} @classmethod def load(cls, file, product_id): if not file: return + cls.file = file product = file.by_id(product_id) - if file.schema == "IFC2X3" and not hasattr(product, "IsDefinedBy"): + if product.is_a("IfcTypeObject"): + cls.load_type(product_id) + else: + cls.load_product(product_id) + + @classmethod + def load_type(cls, product_id): + product = cls.file.by_id(product_id) + cls.types[product_id] = None + if cls.file.schema == "IFC2X3": + if hasattr(product, "ObjectTypeOf"): + cls.types[product_id] = [o.id() for o in product.ObjectTypeOf[0].RelatedObjects] + else: + if hasattr(product, "Types"): + cls.types[product_id] = [o.id() for o in product.Types[0].RelatedObjects] + + @classmethod + def load_product(cls, product_id): + product = cls.file.by_id(product_id) + if cls.file.schema == "IFC2X3" and not hasattr(product, "IsDefinedBy"): cls.products[product_id] = None - elif file.schema != "IFC2X3" and not hasattr(product, "IsTypedBy"): + elif cls.file.schema != "IFC2X3" and not hasattr(product, "IsTypedBy"): cls.products[product_id] = None elif hasattr(product, "IsTypedBy") and product.IsTypedBy: type = product.IsTypedBy[0].RelatingType From e791449d3df36d13ca67f4ebb09681ac7b7b3396 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 22 Jul 2021 19:36:31 +1000 Subject: [PATCH 042/168] Bump IfcOpenShell. See #1567. --- src/blenderbim/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile index 9052e23c75..08bb266a63 100644 --- a/src/blenderbim/Makefile +++ b/src/blenderbim/Makefile @@ -13,10 +13,10 @@ endif # Provides IfcOpenShell Python functionality ifeq ($(PYVERSION), py37) - cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-37-v0.6.0-2fd2b49-$(PLATFORM)64.zip + cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-37-v0.6.0-f14d349-$(PLATFORM)64.zip endif ifeq ($(PYVERSION), py39) - cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-39-v0.6.0-2fd2b49-$(PLATFORM)64.zip + cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-39-v0.6.0-f14d349-$(PLATFORM)64.zip endif cd dist/working && unzip ifcblender* cp -r dist/working/io_import_scene_ifc/ifcopenshell dist/blenderbim/libs/site/packages/ From 1a2d0d702b8b60b8d654ab7e2e24d9f1cd7821e4 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Thu, 22 Jul 2021 11:47:47 +0200 Subject: [PATCH 043/168] #1579 Update templates, thanks @RickBrice --- src/ifcopenshell-python/ifcopenshell/express/templates.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ifcopenshell-python/ifcopenshell/express/templates.py b/src/ifcopenshell-python/ifcopenshell/express/templates.py index 4341c7957b..ef74b7bc9e 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/templates.py +++ b/src/ifcopenshell-python/ifcopenshell/express/templates.py @@ -176,12 +176,14 @@ const IfcParse::enumeration_type& %(schema_name)s::%(name)s::Class() { return *% } %(schema_name)s::%(name)s::%(name)s(Value v) { + data_ = new IfcEntityInstanceData(%(schema_name_upper)s_%(name)s_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } %(schema_name)s::%(name)s::%(name)s(const std::string& v) { + data_ = new IfcEntityInstanceData(%(schema_name_upper)s_%(name)s_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); From 347aae9696ae826fa6739293ff8427f47a70c4d5 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Thu, 22 Jul 2021 11:48:02 +0200 Subject: [PATCH 044/168] #1579 regenerate code --- src/ifcparse/Ifc2x3.cpp | 328 ++ src/ifcparse/Ifc4.cpp | 414 +++ src/ifcparse/Ifc4x1.cpp | 420 +++ src/ifcparse/Ifc4x2.cpp | 434 +++ src/ifcparse/Ifc4x3_rc1.cpp | 484 +++ src/ifcparse/Ifc4x3_rc2.cpp | 490 +++ src/ifcparse/Ifc4x3_rc3-definitions.h | 39 +- src/ifcparse/Ifc4x3_rc3-schema.cpp | 4012 +++++++++++++------------ src/ifcparse/Ifc4x3_rc3.cpp | 611 +++- src/ifcparse/Ifc4x3_rc3.h | 94 +- 10 files changed, 5288 insertions(+), 2038 deletions(-) diff --git a/src/ifcparse/Ifc2x3.cpp b/src/ifcparse/Ifc2x3.cpp index 5749816697..72595e43e1 100644 --- a/src/ifcparse/Ifc2x3.cpp +++ b/src/ifcparse/Ifc2x3.cpp @@ -981,12 +981,14 @@ Ifc2x3::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(IfcEntityInstanceData* } Ifc2x3::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1041,12 +1043,14 @@ Ifc2x3::IfcActionTypeEnum::IfcActionTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcActionTypeEnum::IfcActionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcActionTypeEnum::IfcActionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1079,12 +1083,14 @@ Ifc2x3::IfcActuatorTypeEnum::IfcActuatorTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcActuatorTypeEnum::IfcActuatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1119,12 +1125,14 @@ Ifc2x3::IfcAddressTypeEnum::IfcAddressTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcAddressTypeEnum::IfcAddressTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1157,12 +1165,14 @@ Ifc2x3::IfcAheadOrBehind::IfcAheadOrBehind(IfcEntityInstanceData* e) { } Ifc2x3::IfcAheadOrBehind::IfcAheadOrBehind(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAheadOrBehind_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAheadOrBehind::IfcAheadOrBehind(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAheadOrBehind_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1192,12 +1202,14 @@ Ifc2x3::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(IfcEntityInstanceDa } Ifc2x3::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1230,12 +1242,14 @@ Ifc2x3::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1272,12 +1286,14 @@ Ifc2x3::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(IfcEnti } Ifc2x3::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1316,12 +1332,14 @@ Ifc2x3::IfcAlarmTypeEnum::IfcAlarmTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcAlarmTypeEnum::IfcAlarmTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1357,12 +1375,14 @@ Ifc2x3::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(IfcEntityInstanceData } Ifc2x3::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1395,12 +1415,14 @@ Ifc2x3::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(IfcEntityInstanceDa } Ifc2x3::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1434,12 +1456,14 @@ Ifc2x3::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(IfcEntityInstanceDa } Ifc2x3::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1471,12 +1495,14 @@ Ifc2x3::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1507,12 +1533,14 @@ Ifc2x3::IfcBSplineCurveForm::IfcBSplineCurveForm(IfcEntityInstanceData* e) { } Ifc2x3::IfcBSplineCurveForm::IfcBSplineCurveForm(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1546,12 +1574,14 @@ Ifc2x3::IfcBeamTypeEnum::IfcBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcBeamTypeEnum::IfcBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1585,12 +1615,14 @@ Ifc2x3::IfcBenchmarkEnum::IfcBenchmarkEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcBenchmarkEnum::IfcBenchmarkEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1624,12 +1656,14 @@ Ifc2x3::IfcBoilerTypeEnum::IfcBoilerTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcBoilerTypeEnum::IfcBoilerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1661,12 +1695,14 @@ Ifc2x3::IfcBooleanOperator::IfcBooleanOperator(IfcEntityInstanceData* e) { } Ifc2x3::IfcBooleanOperator::IfcBooleanOperator(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcBooleanOperator::IfcBooleanOperator(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1697,12 +1733,14 @@ Ifc2x3::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(IfcEnti } Ifc2x3::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1732,12 +1770,14 @@ Ifc2x3::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(IfcEntity } Ifc2x3::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1771,12 +1811,14 @@ Ifc2x3::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(IfcEntity } Ifc2x3::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1810,12 +1852,14 @@ Ifc2x3::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(IfcEntityInstanceData* } Ifc2x3::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1847,12 +1891,14 @@ Ifc2x3::IfcChangeActionEnum::IfcChangeActionEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcChangeActionEnum::IfcChangeActionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcChangeActionEnum::IfcChangeActionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1886,12 +1932,14 @@ Ifc2x3::IfcChillerTypeEnum::IfcChillerTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcChillerTypeEnum::IfcChillerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1924,12 +1972,14 @@ Ifc2x3::IfcCoilTypeEnum::IfcCoilTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcCoilTypeEnum::IfcCoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1965,12 +2015,14 @@ Ifc2x3::IfcColumnTypeEnum::IfcColumnTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcColumnTypeEnum::IfcColumnTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2001,12 +2053,14 @@ Ifc2x3::IfcCompressorTypeEnum::IfcCompressorTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcCompressorTypeEnum::IfcCompressorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2051,12 +2105,14 @@ Ifc2x3::IfcCondenserTypeEnum::IfcCondenserTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcCondenserTypeEnum::IfcCondenserTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2092,12 +2148,14 @@ Ifc2x3::IfcConnectionTypeEnum::IfcConnectionTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcConnectionTypeEnum::IfcConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2129,12 +2187,14 @@ Ifc2x3::IfcConstraintEnum::IfcConstraintEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcConstraintEnum::IfcConstraintEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcConstraintEnum::IfcConstraintEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2167,12 +2227,14 @@ Ifc2x3::IfcControllerTypeEnum::IfcControllerTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcControllerTypeEnum::IfcControllerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2208,12 +2270,14 @@ Ifc2x3::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2245,12 +2309,14 @@ Ifc2x3::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(IfcEntityInstanceData* } Ifc2x3::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2283,12 +2349,14 @@ Ifc2x3::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(IfcEntityInstanceData* } Ifc2x3::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2325,12 +2393,14 @@ Ifc2x3::IfcCoveringTypeEnum::IfcCoveringTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcCoveringTypeEnum::IfcCoveringTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2368,12 +2438,14 @@ Ifc2x3::IfcCurrencyEnum::IfcCurrencyEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcCurrencyEnum::IfcCurrencyEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCurrencyEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCurrencyEnum::IfcCurrencyEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCurrencyEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2484,12 +2556,14 @@ Ifc2x3::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2519,12 +2593,14 @@ Ifc2x3::IfcDamperTypeEnum::IfcDamperTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcDamperTypeEnum::IfcDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2565,12 +2641,14 @@ Ifc2x3::IfcDataOriginEnum::IfcDataOriginEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcDataOriginEnum::IfcDataOriginEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDataOriginEnum::IfcDataOriginEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2603,12 +2681,14 @@ Ifc2x3::IfcDerivedUnitEnum::IfcDerivedUnitEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcDerivedUnitEnum::IfcDerivedUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2685,12 +2765,14 @@ Ifc2x3::IfcDimensionExtentUsage::IfcDimensionExtentUsage(IfcEntityInstanceData* } Ifc2x3::IfcDimensionExtentUsage::IfcDimensionExtentUsage(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDimensionExtentUsage_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDimensionExtentUsage::IfcDimensionExtentUsage(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDimensionExtentUsage_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2720,12 +2802,14 @@ Ifc2x3::IfcDirectionSenseEnum::IfcDirectionSenseEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcDirectionSenseEnum::IfcDirectionSenseEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2755,12 +2839,14 @@ Ifc2x3::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementType } Ifc2x3::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2798,12 +2884,14 @@ Ifc2x3::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(IfcEntity } Ifc2x3::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2837,12 +2925,14 @@ Ifc2x3::IfcDocumentStatusEnum::IfcDocumentStatusEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcDocumentStatusEnum::IfcDocumentStatusEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2875,12 +2965,14 @@ Ifc2x3::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(IfcEntityInstanceDa } Ifc2x3::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2916,12 +3008,14 @@ Ifc2x3::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(IfcEntityInstanceData } Ifc2x3::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2953,12 +3047,14 @@ Ifc2x3::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(IfcEntityInst } Ifc2x3::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2995,12 +3091,14 @@ Ifc2x3::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(IfcEntityInstanceDa } Ifc2x3::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3046,12 +3144,14 @@ Ifc2x3::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3088,12 +3188,14 @@ Ifc2x3::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3125,12 +3227,14 @@ Ifc2x3::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(IfcEntityInstanceData* } Ifc2x3::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3163,12 +3267,14 @@ Ifc2x3::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(IfcEntityInst } Ifc2x3::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3222,12 +3328,14 @@ Ifc2x3::IfcElectricCurrentEnum::IfcElectricCurrentEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcElectricCurrentEnum::IfcElectricCurrentEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricCurrentEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElectricCurrentEnum::IfcElectricCurrentEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricCurrentEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3258,12 +3366,14 @@ Ifc2x3::IfcElectricDistributionPointFunctionEnum::IfcElectricDistributionPointFu } Ifc2x3::IfcElectricDistributionPointFunctionEnum::IfcElectricDistributionPointFunctionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricDistributionPointFunctionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElectricDistributionPointFunctionEnum::IfcElectricDistributionPointFunctionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricDistributionPointFunctionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3302,12 +3412,14 @@ Ifc2x3::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEn } Ifc2x3::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3342,12 +3454,14 @@ Ifc2x3::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(IfcEntityInst } Ifc2x3::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3377,12 +3491,14 @@ Ifc2x3::IfcElectricHeaterTypeEnum::IfcElectricHeaterTypeEnum(IfcEntityInstanceDa } Ifc2x3::IfcElectricHeaterTypeEnum::IfcElectricHeaterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElectricHeaterTypeEnum::IfcElectricHeaterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3415,12 +3531,14 @@ Ifc2x3::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(IfcEntityInstanceData } Ifc2x3::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3455,12 +3573,14 @@ Ifc2x3::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(IfcEntity } Ifc2x3::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3493,12 +3613,14 @@ Ifc2x3::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(IfcEntityInstance } Ifc2x3::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3537,12 +3659,14 @@ Ifc2x3::IfcElementCompositionEnum::IfcElementCompositionEnum(IfcEntityInstanceDa } Ifc2x3::IfcElementCompositionEnum::IfcElementCompositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3573,12 +3697,14 @@ Ifc2x3::IfcEnergySequenceEnum::IfcEnergySequenceEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcEnergySequenceEnum::IfcEnergySequenceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcEnergySequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcEnergySequenceEnum::IfcEnergySequenceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcEnergySequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3612,12 +3738,14 @@ Ifc2x3::IfcEnvironmentalImpactCategoryEnum::IfcEnvironmentalImpactCategoryEnum(I } Ifc2x3::IfcEnvironmentalImpactCategoryEnum::IfcEnvironmentalImpactCategoryEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcEnvironmentalImpactCategoryEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcEnvironmentalImpactCategoryEnum::IfcEnvironmentalImpactCategoryEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcEnvironmentalImpactCategoryEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3653,12 +3781,14 @@ Ifc2x3::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(IfcEntityInst } Ifc2x3::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3697,12 +3827,14 @@ Ifc2x3::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3737,12 +3869,14 @@ Ifc2x3::IfcFanTypeEnum::IfcFanTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcFanTypeEnum::IfcFanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcFanTypeEnum::IfcFanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3779,12 +3913,14 @@ Ifc2x3::IfcFilterTypeEnum::IfcFilterTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcFilterTypeEnum::IfcFilterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3819,12 +3955,14 @@ Ifc2x3::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(I } Ifc2x3::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3859,12 +3997,14 @@ Ifc2x3::IfcFlowDirectionEnum::IfcFlowDirectionEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcFlowDirectionEnum::IfcFlowDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3896,12 +4036,14 @@ Ifc2x3::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(IfcEntityInstanceDa } Ifc2x3::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3939,12 +4081,14 @@ Ifc2x3::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3980,12 +4124,14 @@ Ifc2x3::IfcFootingTypeEnum::IfcFootingTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcFootingTypeEnum::IfcFootingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4019,12 +4165,14 @@ Ifc2x3::IfcGasTerminalTypeEnum::IfcGasTerminalTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcGasTerminalTypeEnum::IfcGasTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcGasTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcGasTerminalTypeEnum::IfcGasTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcGasTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4057,12 +4205,14 @@ Ifc2x3::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(IfcEntityInstance } Ifc2x3::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4099,12 +4249,14 @@ Ifc2x3::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4134,12 +4286,14 @@ Ifc2x3::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(IfcEntityInstanceData } Ifc2x3::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4171,12 +4325,14 @@ Ifc2x3::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4219,12 +4375,14 @@ Ifc2x3::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(IfcEntityInstanceDa } Ifc2x3::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4255,12 +4413,14 @@ Ifc2x3::IfcInventoryTypeEnum::IfcInventoryTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcInventoryTypeEnum::IfcInventoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4293,12 +4453,14 @@ Ifc2x3::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4328,12 +4490,14 @@ Ifc2x3::IfcLampTypeEnum::IfcLampTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcLampTypeEnum::IfcLampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcLampTypeEnum::IfcLampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4369,12 +4533,14 @@ Ifc2x3::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(IfcEntityInstanceData } Ifc2x3::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4405,12 +4571,14 @@ Ifc2x3::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(IfcEntityIn } Ifc2x3::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4442,12 +4610,14 @@ Ifc2x3::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(IfcEntityInstance } Ifc2x3::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4486,12 +4656,14 @@ Ifc2x3::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(IfcEntityInstanceData* } Ifc2x3::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4523,12 +4695,14 @@ Ifc2x3::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4562,12 +4736,14 @@ Ifc2x3::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4597,12 +4773,14 @@ Ifc2x3::IfcMemberTypeEnum::IfcMemberTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcMemberTypeEnum::IfcMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4644,12 +4822,14 @@ Ifc2x3::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(IfcEntityInstance } Ifc2x3::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4682,12 +4862,14 @@ Ifc2x3::IfcNullStyle::IfcNullStyle(IfcEntityInstanceData* e) { } Ifc2x3::IfcNullStyle::IfcNullStyle(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcNullStyle::IfcNullStyle(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4716,12 +4898,14 @@ Ifc2x3::IfcObjectTypeEnum::IfcObjectTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcObjectTypeEnum::IfcObjectTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4757,12 +4941,14 @@ Ifc2x3::IfcObjectiveEnum::IfcObjectiveEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcObjectiveEnum::IfcObjectiveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcObjectiveEnum::IfcObjectiveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4798,12 +4984,14 @@ Ifc2x3::IfcOccupantTypeEnum::IfcOccupantTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcOccupantTypeEnum::IfcOccupantTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4840,12 +5028,14 @@ Ifc2x3::IfcOutletTypeEnum::IfcOutletTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcOutletTypeEnum::IfcOutletTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4878,12 +5068,14 @@ Ifc2x3::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Ifc } Ifc2x3::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4916,12 +5108,14 @@ Ifc2x3::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(IfcEntityInstanceData } Ifc2x3::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4952,12 +5146,14 @@ Ifc2x3::IfcPileConstructionEnum::IfcPileConstructionEnum(IfcEntityInstanceData* } Ifc2x3::IfcPileConstructionEnum::IfcPileConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4991,12 +5187,14 @@ Ifc2x3::IfcPileTypeEnum::IfcPileTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcPileTypeEnum::IfcPileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPileTypeEnum::IfcPileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5029,12 +5227,14 @@ Ifc2x3::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5071,12 +5271,14 @@ Ifc2x3::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5110,12 +5312,14 @@ Ifc2x3::IfcPlateTypeEnum::IfcPlateTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcPlateTypeEnum::IfcPlateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5147,12 +5351,14 @@ Ifc2x3::IfcProcedureTypeEnum::IfcProcedureTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcProcedureTypeEnum::IfcProcedureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5189,12 +5395,14 @@ Ifc2x3::IfcProfileTypeEnum::IfcProfileTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcProfileTypeEnum::IfcProfileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5224,12 +5432,14 @@ Ifc2x3::IfcProjectOrderRecordTypeEnum::IfcProjectOrderRecordTypeEnum(IfcEntityIn } Ifc2x3::IfcProjectOrderRecordTypeEnum::IfcProjectOrderRecordTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProjectOrderRecordTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcProjectOrderRecordTypeEnum::IfcProjectOrderRecordTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProjectOrderRecordTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5264,12 +5474,14 @@ Ifc2x3::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(IfcEntityInstanceData* } Ifc2x3::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5304,12 +5516,14 @@ Ifc2x3::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(IfcEntityInst } Ifc2x3::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5339,12 +5553,14 @@ Ifc2x3::IfcPropertySourceEnum::IfcPropertySourceEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcPropertySourceEnum::IfcPropertySourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertySourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPropertySourceEnum::IfcPropertySourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertySourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5381,12 +5597,14 @@ Ifc2x3::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(IfcEntityInstan } Ifc2x3::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5422,12 +5640,14 @@ Ifc2x3::IfcPumpTypeEnum::IfcPumpTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcPumpTypeEnum::IfcPumpTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5462,12 +5682,14 @@ Ifc2x3::IfcRailingTypeEnum::IfcRailingTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcRailingTypeEnum::IfcRailingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5500,12 +5722,14 @@ Ifc2x3::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5537,12 +5761,14 @@ Ifc2x3::IfcRampTypeEnum::IfcRampTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcRampTypeEnum::IfcRampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcRampTypeEnum::IfcRampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5578,12 +5804,14 @@ Ifc2x3::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(IfcEntityInstanceData } Ifc2x3::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5621,12 +5849,14 @@ Ifc2x3::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(IfcEntityInstanceDa } Ifc2x3::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5663,12 +5893,14 @@ Ifc2x3::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(IfcEntityInst } Ifc2x3::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5698,12 +5930,14 @@ Ifc2x3::IfcResourceConsumptionEnum::IfcResourceConsumptionEnum(IfcEntityInstance } Ifc2x3::IfcResourceConsumptionEnum::IfcResourceConsumptionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcResourceConsumptionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcResourceConsumptionEnum::IfcResourceConsumptionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcResourceConsumptionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5739,12 +5973,14 @@ Ifc2x3::IfcRibPlateDirectionEnum::IfcRibPlateDirectionEnum(IfcEntityInstanceData } Ifc2x3::IfcRibPlateDirectionEnum::IfcRibPlateDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRibPlateDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcRibPlateDirectionEnum::IfcRibPlateDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRibPlateDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5774,12 +6010,14 @@ Ifc2x3::IfcRoleEnum::IfcRoleEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcRoleEnum::IfcRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcRoleEnum::IfcRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5830,12 +6068,14 @@ Ifc2x3::IfcRoofTypeEnum::IfcRoofTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcRoofTypeEnum::IfcRoofTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5877,12 +6117,14 @@ Ifc2x3::IfcSIPrefix::IfcSIPrefix(IfcEntityInstanceData* e) { } Ifc2x3::IfcSIPrefix::IfcSIPrefix(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSIPrefix::IfcSIPrefix(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5926,12 +6168,14 @@ Ifc2x3::IfcSIUnitName::IfcSIUnitName(IfcEntityInstanceData* e) { } Ifc2x3::IfcSIUnitName::IfcSIUnitName(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSIUnitName::IfcSIUnitName(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5989,12 +6233,14 @@ Ifc2x3::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(IfcEntityInstan } Ifc2x3::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6034,12 +6280,14 @@ Ifc2x3::IfcSectionTypeEnum::IfcSectionTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcSectionTypeEnum::IfcSectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6069,12 +6317,14 @@ Ifc2x3::IfcSensorTypeEnum::IfcSensorTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcSensorTypeEnum::IfcSensorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6117,12 +6367,14 @@ Ifc2x3::IfcSequenceEnum::IfcSequenceEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcSequenceEnum::IfcSequenceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSequenceEnum::IfcSequenceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6155,12 +6407,14 @@ Ifc2x3::IfcServiceLifeFactorTypeEnum::IfcServiceLifeFactorTypeEnum(IfcEntityInst } Ifc2x3::IfcServiceLifeFactorTypeEnum::IfcServiceLifeFactorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcServiceLifeFactorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcServiceLifeFactorTypeEnum::IfcServiceLifeFactorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcServiceLifeFactorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6197,12 +6451,14 @@ Ifc2x3::IfcServiceLifeTypeEnum::IfcServiceLifeTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcServiceLifeTypeEnum::IfcServiceLifeTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcServiceLifeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcServiceLifeTypeEnum::IfcServiceLifeTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcServiceLifeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6235,12 +6491,14 @@ Ifc2x3::IfcSlabTypeEnum::IfcSlabTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcSlabTypeEnum::IfcSlabTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6274,12 +6532,14 @@ Ifc2x3::IfcSoundScaleEnum::IfcSoundScaleEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcSoundScaleEnum::IfcSoundScaleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSoundScaleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSoundScaleEnum::IfcSoundScaleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSoundScaleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6314,12 +6574,14 @@ Ifc2x3::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6356,12 +6618,14 @@ Ifc2x3::IfcSpaceTypeEnum::IfcSpaceTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcSpaceTypeEnum::IfcSpaceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6391,12 +6655,14 @@ Ifc2x3::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(IfcEntityInstanceData } Ifc2x3::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6429,12 +6695,14 @@ Ifc2x3::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6469,12 +6737,14 @@ Ifc2x3::IfcStairTypeEnum::IfcStairTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcStairTypeEnum::IfcStairTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcStairTypeEnum::IfcStairTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6518,12 +6788,14 @@ Ifc2x3::IfcStateEnum::IfcStateEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcStateEnum::IfcStateEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcStateEnum::IfcStateEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6556,12 +6828,14 @@ Ifc2x3::IfcStructuralCurveTypeEnum::IfcStructuralCurveTypeEnum(IfcEntityInstance } Ifc2x3::IfcStructuralCurveTypeEnum::IfcStructuralCurveTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStructuralCurveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcStructuralCurveTypeEnum::IfcStructuralCurveTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStructuralCurveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6596,12 +6870,14 @@ Ifc2x3::IfcStructuralSurfaceTypeEnum::IfcStructuralSurfaceTypeEnum(IfcEntityInst } Ifc2x3::IfcStructuralSurfaceTypeEnum::IfcStructuralSurfaceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStructuralSurfaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcStructuralSurfaceTypeEnum::IfcStructuralSurfaceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcStructuralSurfaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6634,12 +6910,14 @@ Ifc2x3::IfcSurfaceSide::IfcSurfaceSide(IfcEntityInstanceData* e) { } Ifc2x3::IfcSurfaceSide::IfcSurfaceSide(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSurfaceSide::IfcSurfaceSide(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6670,12 +6948,14 @@ Ifc2x3::IfcSurfaceTextureEnum::IfcSurfaceTextureEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcSurfaceTextureEnum::IfcSurfaceTextureEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSurfaceTextureEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSurfaceTextureEnum::IfcSurfaceTextureEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSurfaceTextureEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6712,12 +6992,14 @@ Ifc2x3::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(IfcEntityInstance } Ifc2x3::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6752,12 +7034,14 @@ Ifc2x3::IfcTankTypeEnum::IfcTankTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcTankTypeEnum::IfcTankTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTankTypeEnum::IfcTankTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6791,12 +7075,14 @@ Ifc2x3::IfcTendonTypeEnum::IfcTendonTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcTendonTypeEnum::IfcTendonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6830,12 +7116,14 @@ Ifc2x3::IfcTextPath::IfcTextPath(IfcEntityInstanceData* e) { } Ifc2x3::IfcTextPath::IfcTextPath(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTextPath::IfcTextPath(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6867,12 +7155,14 @@ Ifc2x3::IfcThermalLoadSourceEnum::IfcThermalLoadSourceEnum(IfcEntityInstanceData } Ifc2x3::IfcThermalLoadSourceEnum::IfcThermalLoadSourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcThermalLoadSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcThermalLoadSourceEnum::IfcThermalLoadSourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcThermalLoadSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6913,12 +7203,14 @@ Ifc2x3::IfcThermalLoadTypeEnum::IfcThermalLoadTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcThermalLoadTypeEnum::IfcThermalLoadTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcThermalLoadTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcThermalLoadTypeEnum::IfcThermalLoadTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcThermalLoadTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6950,12 +7242,14 @@ Ifc2x3::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(IfcEntityInstanceDa } Ifc2x3::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6990,12 +7284,14 @@ Ifc2x3::IfcTimeSeriesScheduleTypeEnum::IfcTimeSeriesScheduleTypeEnum(IfcEntityIn } Ifc2x3::IfcTimeSeriesScheduleTypeEnum::IfcTimeSeriesScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTimeSeriesScheduleTypeEnum::IfcTimeSeriesScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7029,12 +7325,14 @@ Ifc2x3::IfcTransformerTypeEnum::IfcTransformerTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcTransformerTypeEnum::IfcTransformerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7067,12 +7365,14 @@ Ifc2x3::IfcTransitionCode::IfcTransitionCode(IfcEntityInstanceData* e) { } Ifc2x3::IfcTransitionCode::IfcTransitionCode(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTransitionCode::IfcTransitionCode(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7104,12 +7404,14 @@ Ifc2x3::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(IfcEntityInstan } Ifc2x3::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTransportElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTransportElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7142,12 +7444,14 @@ Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference(IfcEntityInstanceData* e) { } Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7178,12 +7482,14 @@ Ifc2x3::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7214,12 +7520,14 @@ Ifc2x3::IfcUnitEnum::IfcUnitEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcUnitEnum::IfcUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcUnitEnum::IfcUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7277,12 +7585,14 @@ Ifc2x3::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(IfcEntityInstan } Ifc2x3::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7316,12 +7626,14 @@ Ifc2x3::IfcValveTypeEnum::IfcValveTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcValveTypeEnum::IfcValveTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcValveTypeEnum::IfcValveTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7372,12 +7684,14 @@ Ifc2x3::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(IfcEntityInst } Ifc2x3::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7409,12 +7723,14 @@ Ifc2x3::IfcWallTypeEnum::IfcWallTypeEnum(IfcEntityInstanceData* e) { } Ifc2x3::IfcWallTypeEnum::IfcWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcWallTypeEnum::IfcWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7449,12 +7765,14 @@ Ifc2x3::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(IfcEntityInstanceData } Ifc2x3::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7494,12 +7812,14 @@ Ifc2x3::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(IfcEntityInstan } Ifc2x3::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7541,12 +7861,14 @@ Ifc2x3::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(IfcEntityInstance } Ifc2x3::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7580,12 +7902,14 @@ Ifc2x3::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(IfcEntity } Ifc2x3::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7621,12 +7945,14 @@ Ifc2x3::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(IfcEntityInstan } Ifc2x3::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7665,12 +7991,14 @@ Ifc2x3::IfcWorkControlTypeEnum::IfcWorkControlTypeEnum(IfcEntityInstanceData* e) } Ifc2x3::IfcWorkControlTypeEnum::IfcWorkControlTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWorkControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc2x3::IfcWorkControlTypeEnum::IfcWorkControlTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC2X3_IfcWorkControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); diff --git a/src/ifcparse/Ifc4.cpp b/src/ifcparse/Ifc4.cpp index 43181c0c40..d20bc9b7d0 100644 --- a/src/ifcparse/Ifc4.cpp +++ b/src/ifcparse/Ifc4.cpp @@ -1160,12 +1160,14 @@ Ifc4::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(IfcEntityInstanceData* } Ifc4::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1200,12 +1202,14 @@ Ifc4::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1260,12 +1264,14 @@ Ifc4::IfcActionTypeEnum::IfcActionTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcActionTypeEnum::IfcActionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcActionTypeEnum::IfcActionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1298,12 +1304,14 @@ Ifc4::IfcActuatorTypeEnum::IfcActuatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcActuatorTypeEnum::IfcActuatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1338,12 +1346,14 @@ Ifc4::IfcAddressTypeEnum::IfcAddressTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcAddressTypeEnum::IfcAddressTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1376,12 +1386,14 @@ Ifc4::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(IfcEntityInstanceData } Ifc4::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1414,12 +1426,14 @@ Ifc4::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1453,12 +1467,14 @@ Ifc4::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(IfcEntity } Ifc4::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1497,12 +1513,14 @@ Ifc4::IfcAlarmTypeEnum::IfcAlarmTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcAlarmTypeEnum::IfcAlarmTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1538,12 +1556,14 @@ Ifc4::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(IfcEntityInstanceData* } Ifc4::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1576,12 +1596,14 @@ Ifc4::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(IfcEntityInstanceData } Ifc4::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1615,12 +1637,14 @@ Ifc4::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(IfcEntityInstanceData } Ifc4::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1652,12 +1676,14 @@ Ifc4::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(IfcEntityInstanceData* e) { } Ifc4::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1688,12 +1714,14 @@ Ifc4::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(IfcEntity } Ifc4::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1734,12 +1762,14 @@ Ifc4::IfcBSplineCurveForm::IfcBSplineCurveForm(IfcEntityInstanceData* e) { } Ifc4::IfcBSplineCurveForm::IfcBSplineCurveForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1773,12 +1803,14 @@ Ifc4::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(IfcEntityInstanceData* e) { } Ifc4::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1817,12 +1849,14 @@ Ifc4::IfcBeamTypeEnum::IfcBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcBeamTypeEnum::IfcBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1858,12 +1892,14 @@ Ifc4::IfcBenchmarkEnum::IfcBenchmarkEnum(IfcEntityInstanceData* e) { } Ifc4::IfcBenchmarkEnum::IfcBenchmarkEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1901,12 +1937,14 @@ Ifc4::IfcBoilerTypeEnum::IfcBoilerTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcBoilerTypeEnum::IfcBoilerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1938,12 +1976,14 @@ Ifc4::IfcBooleanOperator::IfcBooleanOperator(IfcEntityInstanceData* e) { } Ifc4::IfcBooleanOperator::IfcBooleanOperator(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBooleanOperator::IfcBooleanOperator(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1974,12 +2014,14 @@ Ifc4::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(IfcEntityIn } Ifc4::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2011,12 +2053,14 @@ Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(IfcEntity } Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2051,12 +2095,14 @@ Ifc4::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(IfcEntityInstanceData } Ifc4::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2092,12 +2138,14 @@ Ifc4::IfcBurnerTypeEnum::IfcBurnerTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcBurnerTypeEnum::IfcBurnerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcBurnerTypeEnum::IfcBurnerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2127,12 +2175,14 @@ Ifc4::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(IfcEntityIn } Ifc4::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2166,12 +2216,14 @@ Ifc4::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(IfcEntityIn } Ifc4::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2205,12 +2257,14 @@ Ifc4::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2245,12 +2299,14 @@ Ifc4::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2284,12 +2340,14 @@ Ifc4::IfcChangeActionEnum::IfcChangeActionEnum(IfcEntityInstanceData* e) { } Ifc4::IfcChangeActionEnum::IfcChangeActionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcChangeActionEnum::IfcChangeActionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2322,12 +2380,14 @@ Ifc4::IfcChillerTypeEnum::IfcChillerTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcChillerTypeEnum::IfcChillerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2360,12 +2420,14 @@ Ifc4::IfcChimneyTypeEnum::IfcChimneyTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcChimneyTypeEnum::IfcChimneyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcChimneyTypeEnum::IfcChimneyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2395,12 +2457,14 @@ Ifc4::IfcCoilTypeEnum::IfcCoilTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcCoilTypeEnum::IfcCoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2437,12 +2501,14 @@ Ifc4::IfcColumnTypeEnum::IfcColumnTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcColumnTypeEnum::IfcColumnTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2474,12 +2540,14 @@ Ifc4::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(Ifc } Ifc4::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2521,12 +2589,14 @@ Ifc4::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(Ifc } Ifc4::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2556,12 +2626,14 @@ Ifc4::IfcCompressorTypeEnum::IfcCompressorTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcCompressorTypeEnum::IfcCompressorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2606,12 +2678,14 @@ Ifc4::IfcCondenserTypeEnum::IfcCondenserTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcCondenserTypeEnum::IfcCondenserTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2648,12 +2722,14 @@ Ifc4::IfcConnectionTypeEnum::IfcConnectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcConnectionTypeEnum::IfcConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2685,12 +2761,14 @@ Ifc4::IfcConstraintEnum::IfcConstraintEnum(IfcEntityInstanceData* e) { } Ifc4::IfcConstraintEnum::IfcConstraintEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcConstraintEnum::IfcConstraintEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2723,12 +2801,14 @@ Ifc4::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResource } Ifc4::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2766,12 +2846,14 @@ Ifc4::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTy } Ifc4::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2810,12 +2892,14 @@ Ifc4::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceType } Ifc4::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2847,12 +2931,14 @@ Ifc4::IfcControllerTypeEnum::IfcControllerTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcControllerTypeEnum::IfcControllerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2887,12 +2973,14 @@ Ifc4::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2924,12 +3012,14 @@ Ifc4::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2962,12 +3052,14 @@ Ifc4::IfcCostItemTypeEnum::IfcCostItemTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcCostItemTypeEnum::IfcCostItemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCostItemTypeEnum::IfcCostItemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2997,12 +3089,14 @@ Ifc4::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3039,12 +3133,14 @@ Ifc4::IfcCoveringTypeEnum::IfcCoveringTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcCoveringTypeEnum::IfcCoveringTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3084,12 +3180,14 @@ Ifc4::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3121,12 +3219,14 @@ Ifc4::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3156,12 +3256,14 @@ Ifc4::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(IfcEntityInstanceData } Ifc4::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3193,12 +3295,14 @@ Ifc4::IfcDamperTypeEnum::IfcDamperTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcDamperTypeEnum::IfcDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3239,12 +3343,14 @@ Ifc4::IfcDataOriginEnum::IfcDataOriginEnum(IfcEntityInstanceData* e) { } Ifc4::IfcDataOriginEnum::IfcDataOriginEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDataOriginEnum::IfcDataOriginEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3277,12 +3383,14 @@ Ifc4::IfcDerivedUnitEnum::IfcDerivedUnitEnum(IfcEntityInstanceData* e) { } Ifc4::IfcDerivedUnitEnum::IfcDerivedUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3363,12 +3471,14 @@ Ifc4::IfcDirectionSenseEnum::IfcDirectionSenseEnum(IfcEntityInstanceData* e) { } Ifc4::IfcDirectionSenseEnum::IfcDirectionSenseEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3398,12 +3508,14 @@ Ifc4::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(IfcEntityInstan } Ifc4::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3436,12 +3548,14 @@ Ifc4::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEn } Ifc4::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3479,12 +3593,14 @@ Ifc4::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(IfcEntityInstance } Ifc4::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3518,12 +3634,14 @@ Ifc4::IfcDistributionSystemEnum::IfcDistributionSystemEnum(IfcEntityInstanceData } Ifc4::IfcDistributionSystemEnum::IfcDistributionSystemEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDistributionSystemEnum::IfcDistributionSystemEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3595,12 +3713,14 @@ Ifc4::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(IfcEntityIn } Ifc4::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3634,12 +3754,14 @@ Ifc4::IfcDocumentStatusEnum::IfcDocumentStatusEnum(IfcEntityInstanceData* e) { } Ifc4::IfcDocumentStatusEnum::IfcDocumentStatusEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3672,12 +3794,14 @@ Ifc4::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(IfcEntityInstanceData } Ifc4::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3714,12 +3838,14 @@ Ifc4::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(IfcEntityInstanceData* } Ifc4::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3751,12 +3877,14 @@ Ifc4::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(IfcEntityInstan } Ifc4::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3793,12 +3921,14 @@ Ifc4::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(IfcEntityInstanceData } Ifc4::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3844,12 +3974,14 @@ Ifc4::IfcDoorTypeEnum::IfcDoorTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcDoorTypeEnum::IfcDoorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDoorTypeEnum::IfcDoorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3882,12 +4014,14 @@ Ifc4::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(IfcEntityInstanceData* } Ifc4::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3935,12 +4069,14 @@ Ifc4::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3977,12 +4113,14 @@ Ifc4::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4014,12 +4152,14 @@ Ifc4::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4052,12 +4192,14 @@ Ifc4::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(IfcEntityInstan } Ifc4::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4103,12 +4245,14 @@ Ifc4::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum } Ifc4::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4142,12 +4286,14 @@ Ifc4::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum } Ifc4::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4182,12 +4328,14 @@ Ifc4::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(IfcEntityInstan } Ifc4::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4220,12 +4368,14 @@ Ifc4::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(IfcEntityInstanceData* } Ifc4::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4260,12 +4410,14 @@ Ifc4::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(IfcEntityIn } Ifc4::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4298,12 +4450,14 @@ Ifc4::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(IfcEntityInstanceDa } Ifc4::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4342,12 +4496,14 @@ Ifc4::IfcElementCompositionEnum::IfcElementCompositionEnum(IfcEntityInstanceData } Ifc4::IfcElementCompositionEnum::IfcElementCompositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4378,12 +4534,14 @@ Ifc4::IfcEngineTypeEnum::IfcEngineTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcEngineTypeEnum::IfcEngineTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcEngineTypeEnum::IfcEngineTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4415,12 +4573,14 @@ Ifc4::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(IfcEntityInstan } Ifc4::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4459,12 +4619,14 @@ Ifc4::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4500,12 +4662,14 @@ Ifc4::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4539,12 +4703,14 @@ Ifc4::IfcEventTypeEnum::IfcEventTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcEventTypeEnum::IfcEventTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcEventTypeEnum::IfcEventTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4577,12 +4743,14 @@ Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(IfcEn } Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4616,12 +4784,14 @@ Ifc4::IfcFanTypeEnum::IfcFanTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcFanTypeEnum::IfcFanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFanTypeEnum::IfcFanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4658,12 +4828,14 @@ Ifc4::IfcFastenerTypeEnum::IfcFastenerTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcFastenerTypeEnum::IfcFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFastenerTypeEnum::IfcFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4696,12 +4868,14 @@ Ifc4::IfcFilterTypeEnum::IfcFilterTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcFilterTypeEnum::IfcFilterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4737,12 +4911,14 @@ Ifc4::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Ifc } Ifc4::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4777,12 +4953,14 @@ Ifc4::IfcFlowDirectionEnum::IfcFlowDirectionEnum(IfcEntityInstanceData* e) { } Ifc4::IfcFlowDirectionEnum::IfcFlowDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4814,12 +4992,14 @@ Ifc4::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(IfcEntityInstanceData } Ifc4::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4857,12 +5037,14 @@ Ifc4::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4896,12 +5078,14 @@ Ifc4::IfcFootingTypeEnum::IfcFootingTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcFootingTypeEnum::IfcFootingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4936,12 +5120,14 @@ Ifc4::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4978,12 +5164,14 @@ Ifc4::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(IfcEntityInstan } Ifc4::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5014,12 +5202,14 @@ Ifc4::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(IfcEntityInstanceDa } Ifc4::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5056,12 +5246,14 @@ Ifc4::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(IfcEntityInstanceData* e) { } Ifc4::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5091,12 +5283,14 @@ Ifc4::IfcGridTypeEnum::IfcGridTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcGridTypeEnum::IfcGridTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcGridTypeEnum::IfcGridTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5130,12 +5324,14 @@ Ifc4::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(IfcEntityInstanceData* } Ifc4::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5167,12 +5363,14 @@ Ifc4::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5215,12 +5413,14 @@ Ifc4::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5254,12 +5454,14 @@ Ifc4::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(IfcEntityInstanceData } Ifc4::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5293,12 +5495,14 @@ Ifc4::IfcInventoryTypeEnum::IfcInventoryTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcInventoryTypeEnum::IfcInventoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5331,12 +5535,14 @@ Ifc4::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5368,12 +5574,14 @@ Ifc4::IfcKnotType::IfcKnotType(IfcEntityInstanceData* e) { } Ifc4::IfcKnotType::IfcKnotType(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcKnotType::IfcKnotType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5405,12 +5613,14 @@ Ifc4::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(IfcEntityInstanceData* } Ifc4::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5459,12 +5669,14 @@ Ifc4::IfcLampTypeEnum::IfcLampTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcLampTypeEnum::IfcLampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcLampTypeEnum::IfcLampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5503,12 +5715,14 @@ Ifc4::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(IfcEntityInstanceData* } Ifc4::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5539,12 +5753,14 @@ Ifc4::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(IfcEntityInst } Ifc4::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5576,12 +5792,14 @@ Ifc4::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(IfcEntityInstanceDa } Ifc4::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5620,12 +5838,14 @@ Ifc4::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5658,12 +5878,14 @@ Ifc4::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5696,12 +5918,14 @@ Ifc4::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(IfcEntityInstanceData* e) { } Ifc4::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5734,12 +5958,14 @@ Ifc4::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(IfcEntityInst } Ifc4::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5779,12 +6005,14 @@ Ifc4::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(IfcEntityInstanceData* } Ifc4::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5819,12 +6047,14 @@ Ifc4::IfcMemberTypeEnum::IfcMemberTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcMemberTypeEnum::IfcMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5866,12 +6096,14 @@ Ifc4::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(IfcEntityInstanceDa } Ifc4::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5904,12 +6136,14 @@ Ifc4::IfcNullStyle::IfcNullStyle(IfcEntityInstanceData* e) { } Ifc4::IfcNullStyle::IfcNullStyle(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcNullStyle::IfcNullStyle(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5938,12 +6172,14 @@ Ifc4::IfcObjectTypeEnum::IfcObjectTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcObjectTypeEnum::IfcObjectTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5979,12 +6215,14 @@ Ifc4::IfcObjectiveEnum::IfcObjectiveEnum(IfcEntityInstanceData* e) { } Ifc4::IfcObjectiveEnum::IfcObjectiveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcObjectiveEnum::IfcObjectiveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6025,12 +6263,14 @@ Ifc4::IfcOccupantTypeEnum::IfcOccupantTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcOccupantTypeEnum::IfcOccupantTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6067,12 +6307,14 @@ Ifc4::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(IfcEntityInstanceData } Ifc4::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6104,12 +6346,14 @@ Ifc4::IfcOutletTypeEnum::IfcOutletTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcOutletTypeEnum::IfcOutletTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6144,12 +6388,14 @@ Ifc4::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(IfcEntityInst } Ifc4::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6179,12 +6425,14 @@ Ifc4::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(IfcEn } Ifc4::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6217,12 +6465,14 @@ Ifc4::IfcPermitTypeEnum::IfcPermitTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcPermitTypeEnum::IfcPermitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPermitTypeEnum::IfcPermitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6255,12 +6505,14 @@ Ifc4::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(IfcEntityInstanceData* } Ifc4::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6291,12 +6543,14 @@ Ifc4::IfcPileConstructionEnum::IfcPileConstructionEnum(IfcEntityInstanceData* e) } Ifc4::IfcPileConstructionEnum::IfcPileConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6330,12 +6584,14 @@ Ifc4::IfcPileTypeEnum::IfcPileTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcPileTypeEnum::IfcPileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPileTypeEnum::IfcPileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6371,12 +6627,14 @@ Ifc4::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6413,12 +6671,14 @@ Ifc4::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6453,12 +6713,14 @@ Ifc4::IfcPlateTypeEnum::IfcPlateTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcPlateTypeEnum::IfcPlateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6490,12 +6752,14 @@ Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresenta } Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6526,12 +6790,14 @@ Ifc4::IfcProcedureTypeEnum::IfcProcedureTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcProcedureTypeEnum::IfcProcedureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6568,12 +6834,14 @@ Ifc4::IfcProfileTypeEnum::IfcProfileTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcProfileTypeEnum::IfcProfileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6603,12 +6871,14 @@ Ifc4::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6643,12 +6913,14 @@ Ifc4::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(IfcEntityInstan } Ifc4::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6678,12 +6950,14 @@ Ifc4::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(IfcEntityInstan } Ifc4::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6713,12 +6987,14 @@ Ifc4::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(IfcEntityIn } Ifc4::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6754,12 +7030,14 @@ Ifc4::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTy } Ifc4::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6793,12 +7071,14 @@ Ifc4::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(IfcEntityInstance } Ifc4::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6835,12 +7115,14 @@ Ifc4::IfcPumpTypeEnum::IfcPumpTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcPumpTypeEnum::IfcPumpTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6877,12 +7159,14 @@ Ifc4::IfcRailingTypeEnum::IfcRailingTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcRailingTypeEnum::IfcRailingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6915,12 +7199,14 @@ Ifc4::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6952,12 +7238,14 @@ Ifc4::IfcRampTypeEnum::IfcRampTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcRampTypeEnum::IfcRampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcRampTypeEnum::IfcRampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6993,12 +7281,14 @@ Ifc4::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7034,12 +7324,14 @@ Ifc4::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(IfcEntityInstanceData* } Ifc4::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7077,12 +7369,14 @@ Ifc4::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(IfcEntityInstanceData } Ifc4::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7120,12 +7414,14 @@ Ifc4::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(IfcEntityInstan } Ifc4::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7155,12 +7451,14 @@ Ifc4::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(IfcEntityInstanceData } Ifc4::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7198,12 +7496,14 @@ Ifc4::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(IfcEntityInstanceDa } Ifc4::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7233,12 +7533,14 @@ Ifc4::IfcRoleEnum::IfcRoleEnum(IfcEntityInstanceData* e) { } Ifc4::IfcRoleEnum::IfcRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcRoleEnum::IfcRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7289,12 +7591,14 @@ Ifc4::IfcRoofTypeEnum::IfcRoofTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcRoofTypeEnum::IfcRoofTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7337,12 +7641,14 @@ Ifc4::IfcSIPrefix::IfcSIPrefix(IfcEntityInstanceData* e) { } Ifc4::IfcSIPrefix::IfcSIPrefix(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSIPrefix::IfcSIPrefix(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7386,12 +7692,14 @@ Ifc4::IfcSIUnitName::IfcSIUnitName(IfcEntityInstanceData* e) { } Ifc4::IfcSIUnitName::IfcSIUnitName(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSIUnitName::IfcSIUnitName(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7449,12 +7757,14 @@ Ifc4::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(IfcEntityInstance } Ifc4::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7494,12 +7804,14 @@ Ifc4::IfcSectionTypeEnum::IfcSectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcSectionTypeEnum::IfcSectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7529,12 +7841,14 @@ Ifc4::IfcSensorTypeEnum::IfcSensorTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcSensorTypeEnum::IfcSensorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7588,12 +7902,14 @@ Ifc4::IfcSequenceEnum::IfcSequenceEnum(IfcEntityInstanceData* e) { } Ifc4::IfcSequenceEnum::IfcSequenceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSequenceEnum::IfcSequenceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7627,12 +7943,14 @@ Ifc4::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(IfcEntityInstanceData* } Ifc4::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7665,12 +7983,14 @@ Ifc4::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(IfcEn } Ifc4::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7710,12 +8030,14 @@ Ifc4::IfcSlabTypeEnum::IfcSlabTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcSlabTypeEnum::IfcSlabTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7749,12 +8071,14 @@ Ifc4::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7786,12 +8110,14 @@ Ifc4::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7823,12 +8149,14 @@ Ifc4::IfcSpaceTypeEnum::IfcSpaceTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcSpaceTypeEnum::IfcSpaceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7863,12 +8191,14 @@ Ifc4::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7906,12 +8236,14 @@ Ifc4::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(IfcEntityInstanceData* } Ifc4::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7944,12 +8276,14 @@ Ifc4::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7984,12 +8318,14 @@ Ifc4::IfcStairTypeEnum::IfcStairTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcStairTypeEnum::IfcStairTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcStairTypeEnum::IfcStairTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8033,12 +8369,14 @@ Ifc4::IfcStateEnum::IfcStateEnum(IfcEntityInstanceData* e) { } Ifc4::IfcStateEnum::IfcStateEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcStateEnum::IfcStateEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8071,12 +8409,14 @@ Ifc4::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(Ifc } Ifc4::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8113,12 +8453,14 @@ Ifc4::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(IfcEnti } Ifc4::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8153,12 +8495,14 @@ Ifc4::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum } Ifc4::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8192,12 +8536,14 @@ Ifc4::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(Ifc } Ifc4::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8230,12 +8576,14 @@ Ifc4::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(IfcEntityIn } Ifc4::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8267,12 +8615,14 @@ Ifc4::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(IfcEntityInstanceData } Ifc4::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8305,12 +8655,14 @@ Ifc4::IfcSurfaceSide::IfcSurfaceSide(IfcEntityInstanceData* e) { } Ifc4::IfcSurfaceSide::IfcSurfaceSide(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSurfaceSide::IfcSurfaceSide(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8341,12 +8693,14 @@ Ifc4::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(IfcEntityInstanceDa } Ifc4::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8385,12 +8739,14 @@ Ifc4::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(IfcEn } Ifc4::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8422,12 +8778,14 @@ Ifc4::IfcTankTypeEnum::IfcTankTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcTankTypeEnum::IfcTankTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTankTypeEnum::IfcTankTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8464,12 +8822,14 @@ Ifc4::IfcTaskDurationEnum::IfcTaskDurationEnum(IfcEntityInstanceData* e) { } Ifc4::IfcTaskDurationEnum::IfcTaskDurationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTaskDurationEnum::IfcTaskDurationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8500,12 +8860,14 @@ Ifc4::IfcTaskTypeEnum::IfcTaskTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcTaskTypeEnum::IfcTaskTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTaskTypeEnum::IfcTaskTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8547,12 +8909,14 @@ Ifc4::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8585,12 +8949,14 @@ Ifc4::IfcTendonTypeEnum::IfcTendonTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcTendonTypeEnum::IfcTendonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8624,12 +8990,14 @@ Ifc4::IfcTextPath::IfcTextPath(IfcEntityInstanceData* e) { } Ifc4::IfcTextPath::IfcTextPath(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTextPath::IfcTextPath(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8661,12 +9029,14 @@ Ifc4::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(IfcEntityInstanceData } Ifc4::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8701,12 +9071,14 @@ Ifc4::IfcTransformerTypeEnum::IfcTransformerTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcTransformerTypeEnum::IfcTransformerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8741,12 +9113,14 @@ Ifc4::IfcTransitionCode::IfcTransitionCode(IfcEntityInstanceData* e) { } Ifc4::IfcTransitionCode::IfcTransitionCode(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTransitionCode::IfcTransitionCode(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8778,12 +9152,14 @@ Ifc4::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(IfcEntityInstance } Ifc4::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTransportElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTransportElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8818,12 +9194,14 @@ Ifc4::IfcTrimmingPreference::IfcTrimmingPreference(IfcEntityInstanceData* e) { } Ifc4::IfcTrimmingPreference::IfcTrimmingPreference(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTrimmingPreference::IfcTrimmingPreference(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8854,12 +9232,14 @@ Ifc4::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8890,12 +9270,14 @@ Ifc4::IfcUnitEnum::IfcUnitEnum(IfcEntityInstanceData* e) { } Ifc4::IfcUnitEnum::IfcUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcUnitEnum::IfcUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8953,12 +9335,14 @@ Ifc4::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(IfcEnti } Ifc4::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8996,12 +9380,14 @@ Ifc4::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(IfcEntityInstance } Ifc4::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9036,12 +9422,14 @@ Ifc4::IfcValveTypeEnum::IfcValveTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcValveTypeEnum::IfcValveTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcValveTypeEnum::IfcValveTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9092,12 +9480,14 @@ Ifc4::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(IfcEntityInstan } Ifc4::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9129,12 +9519,14 @@ Ifc4::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(IfcEntityInstanceData } Ifc4::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9170,12 +9562,14 @@ Ifc4::IfcWallTypeEnum::IfcWallTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcWallTypeEnum::IfcWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWallTypeEnum::IfcWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9214,12 +9608,14 @@ Ifc4::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(IfcEntityInstanceData* } Ifc4::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9256,12 +9652,14 @@ Ifc4::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(IfcEntityInstance } Ifc4::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9303,12 +9701,14 @@ Ifc4::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(IfcEntityInstanceDa } Ifc4::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9342,12 +9742,14 @@ Ifc4::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(IfcEntityIn } Ifc4::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9383,12 +9785,14 @@ Ifc4::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(IfcEntityInstance } Ifc4::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9427,12 +9831,14 @@ Ifc4::IfcWindowTypeEnum::IfcWindowTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcWindowTypeEnum::IfcWindowTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWindowTypeEnum::IfcWindowTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9465,12 +9871,14 @@ Ifc4::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(IfcEntityInst } Ifc4::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9509,12 +9917,14 @@ Ifc4::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9547,12 +9957,14 @@ Ifc4::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(IfcEntityInstanceData* e) { } Ifc4::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9585,12 +9997,14 @@ Ifc4::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(IfcEntityInstanceData* e) } Ifc4::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); diff --git a/src/ifcparse/Ifc4x1.cpp b/src/ifcparse/Ifc4x1.cpp index 65a4248c4a..3fc42fe562 100644 --- a/src/ifcparse/Ifc4x1.cpp +++ b/src/ifcparse/Ifc4x1.cpp @@ -1188,12 +1188,14 @@ Ifc4x1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1228,12 +1230,14 @@ Ifc4x1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1288,12 +1292,14 @@ Ifc4x1::IfcActionTypeEnum::IfcActionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcActionTypeEnum::IfcActionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcActionTypeEnum::IfcActionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1326,12 +1332,14 @@ Ifc4x1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1366,12 +1374,14 @@ Ifc4x1::IfcAddressTypeEnum::IfcAddressTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcAddressTypeEnum::IfcAddressTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1404,12 +1414,14 @@ Ifc4x1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1442,12 +1454,14 @@ Ifc4x1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1481,12 +1495,14 @@ Ifc4x1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(IfcEnti } Ifc4x1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1525,12 +1541,14 @@ Ifc4x1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1566,12 +1584,14 @@ Ifc4x1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1601,12 +1621,14 @@ Ifc4x1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1639,12 +1661,14 @@ Ifc4x1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1678,12 +1702,14 @@ Ifc4x1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(IfcEntityInstanceDa } Ifc4x1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1715,12 +1741,14 @@ Ifc4x1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1751,12 +1779,14 @@ Ifc4x1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(IfcEnti } Ifc4x1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1797,12 +1827,14 @@ Ifc4x1::IfcBSplineCurveForm::IfcBSplineCurveForm(IfcEntityInstanceData* e) { } Ifc4x1::IfcBSplineCurveForm::IfcBSplineCurveForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1836,12 +1868,14 @@ Ifc4x1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(IfcEntityInstanceData* e) { } Ifc4x1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1880,12 +1914,14 @@ Ifc4x1::IfcBeamTypeEnum::IfcBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcBeamTypeEnum::IfcBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1921,12 +1957,14 @@ Ifc4x1::IfcBenchmarkEnum::IfcBenchmarkEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcBenchmarkEnum::IfcBenchmarkEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1964,12 +2002,14 @@ Ifc4x1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2001,12 +2041,14 @@ Ifc4x1::IfcBooleanOperator::IfcBooleanOperator(IfcEntityInstanceData* e) { } Ifc4x1::IfcBooleanOperator::IfcBooleanOperator(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBooleanOperator::IfcBooleanOperator(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2037,12 +2079,14 @@ Ifc4x1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(IfcEntity } Ifc4x1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2074,12 +2118,14 @@ Ifc4x1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(IfcEnti } Ifc4x1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2114,12 +2160,14 @@ Ifc4x1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2155,12 +2203,14 @@ Ifc4x1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2190,12 +2240,14 @@ Ifc4x1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(IfcEntity } Ifc4x1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2229,12 +2281,14 @@ Ifc4x1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(IfcEntity } Ifc4x1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2268,12 +2322,14 @@ Ifc4x1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2308,12 +2364,14 @@ Ifc4x1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2347,12 +2405,14 @@ Ifc4x1::IfcChangeActionEnum::IfcChangeActionEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcChangeActionEnum::IfcChangeActionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcChangeActionEnum::IfcChangeActionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2385,12 +2445,14 @@ Ifc4x1::IfcChillerTypeEnum::IfcChillerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcChillerTypeEnum::IfcChillerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2423,12 +2485,14 @@ Ifc4x1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2458,12 +2522,14 @@ Ifc4x1::IfcCoilTypeEnum::IfcCoilTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcCoilTypeEnum::IfcCoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2500,12 +2566,14 @@ Ifc4x1::IfcColumnTypeEnum::IfcColumnTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcColumnTypeEnum::IfcColumnTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2537,12 +2605,14 @@ Ifc4x1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(I } Ifc4x1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2584,12 +2654,14 @@ Ifc4x1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(I } Ifc4x1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2619,12 +2691,14 @@ Ifc4x1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2669,12 +2743,14 @@ Ifc4x1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2711,12 +2787,14 @@ Ifc4x1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2748,12 +2826,14 @@ Ifc4x1::IfcConstraintEnum::IfcConstraintEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcConstraintEnum::IfcConstraintEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcConstraintEnum::IfcConstraintEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2786,12 +2866,14 @@ Ifc4x1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResour } Ifc4x1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2829,12 +2911,14 @@ Ifc4x1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResource } Ifc4x1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2873,12 +2957,14 @@ Ifc4x1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTy } Ifc4x1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2910,12 +2996,14 @@ Ifc4x1::IfcControllerTypeEnum::IfcControllerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcControllerTypeEnum::IfcControllerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2950,12 +3038,14 @@ Ifc4x1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2987,12 +3077,14 @@ Ifc4x1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3025,12 +3117,14 @@ Ifc4x1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3060,12 +3154,14 @@ Ifc4x1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3102,12 +3198,14 @@ Ifc4x1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3147,12 +3245,14 @@ Ifc4x1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3184,12 +3284,14 @@ Ifc4x1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3219,12 +3321,14 @@ Ifc4x1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(IfcEntityInstanceDa } Ifc4x1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3256,12 +3360,14 @@ Ifc4x1::IfcDamperTypeEnum::IfcDamperTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcDamperTypeEnum::IfcDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3302,12 +3408,14 @@ Ifc4x1::IfcDataOriginEnum::IfcDataOriginEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcDataOriginEnum::IfcDataOriginEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDataOriginEnum::IfcDataOriginEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3340,12 +3448,14 @@ Ifc4x1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3426,12 +3536,14 @@ Ifc4x1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3461,12 +3573,14 @@ Ifc4x1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(IfcEntityInst } Ifc4x1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3499,12 +3613,14 @@ Ifc4x1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementType } Ifc4x1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3542,12 +3658,14 @@ Ifc4x1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(IfcEntityInstan } Ifc4x1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3581,12 +3699,14 @@ Ifc4x1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(IfcEntityInstanceDa } Ifc4x1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3658,12 +3778,14 @@ Ifc4x1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(IfcEntity } Ifc4x1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3697,12 +3819,14 @@ Ifc4x1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3735,12 +3859,14 @@ Ifc4x1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(IfcEntityInstanceDa } Ifc4x1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3777,12 +3903,14 @@ Ifc4x1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(IfcEntityInstanceData } Ifc4x1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3814,12 +3942,14 @@ Ifc4x1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(IfcEntityInst } Ifc4x1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3856,12 +3986,14 @@ Ifc4x1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(IfcEntityInstanceDa } Ifc4x1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3907,12 +4039,14 @@ Ifc4x1::IfcDoorTypeEnum::IfcDoorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcDoorTypeEnum::IfcDoorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDoorTypeEnum::IfcDoorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3945,12 +4079,14 @@ Ifc4x1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(IfcEntityInstanceData } Ifc4x1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3998,12 +4134,14 @@ Ifc4x1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4040,12 +4178,14 @@ Ifc4x1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4077,12 +4217,14 @@ Ifc4x1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4115,12 +4257,14 @@ Ifc4x1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(IfcEntityInst } Ifc4x1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4166,12 +4310,14 @@ Ifc4x1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEn } Ifc4x1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4205,12 +4351,14 @@ Ifc4x1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEn } Ifc4x1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4245,12 +4393,14 @@ Ifc4x1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(IfcEntityInst } Ifc4x1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4283,12 +4433,14 @@ Ifc4x1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4323,12 +4475,14 @@ Ifc4x1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(IfcEntity } Ifc4x1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4361,12 +4515,14 @@ Ifc4x1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(IfcEntityInstance } Ifc4x1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4405,12 +4561,14 @@ Ifc4x1::IfcElementCompositionEnum::IfcElementCompositionEnum(IfcEntityInstanceDa } Ifc4x1::IfcElementCompositionEnum::IfcElementCompositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4441,12 +4599,14 @@ Ifc4x1::IfcEngineTypeEnum::IfcEngineTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcEngineTypeEnum::IfcEngineTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcEngineTypeEnum::IfcEngineTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4478,12 +4638,14 @@ Ifc4x1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(IfcEntityInst } Ifc4x1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4522,12 +4684,14 @@ Ifc4x1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4563,12 +4727,14 @@ Ifc4x1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4602,12 +4768,14 @@ Ifc4x1::IfcEventTypeEnum::IfcEventTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcEventTypeEnum::IfcEventTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcEventTypeEnum::IfcEventTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4640,12 +4808,14 @@ Ifc4x1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Ifc } Ifc4x1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4679,12 +4849,14 @@ Ifc4x1::IfcFanTypeEnum::IfcFanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcFanTypeEnum::IfcFanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFanTypeEnum::IfcFanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4721,12 +4893,14 @@ Ifc4x1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4759,12 +4933,14 @@ Ifc4x1::IfcFilterTypeEnum::IfcFilterTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcFilterTypeEnum::IfcFilterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4800,12 +4976,14 @@ Ifc4x1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(I } Ifc4x1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4840,12 +5018,14 @@ Ifc4x1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4877,12 +5057,14 @@ Ifc4x1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4920,12 +5102,14 @@ Ifc4x1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4959,12 +5143,14 @@ Ifc4x1::IfcFootingTypeEnum::IfcFootingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcFootingTypeEnum::IfcFootingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4999,12 +5185,14 @@ Ifc4x1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5041,12 +5229,14 @@ Ifc4x1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(IfcEntityInst } Ifc4x1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5077,12 +5267,14 @@ Ifc4x1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(IfcEntityInstance } Ifc4x1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5119,12 +5311,14 @@ Ifc4x1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5154,12 +5348,14 @@ Ifc4x1::IfcGridTypeEnum::IfcGridTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcGridTypeEnum::IfcGridTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcGridTypeEnum::IfcGridTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5193,12 +5389,14 @@ Ifc4x1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5230,12 +5428,14 @@ Ifc4x1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5278,12 +5478,14 @@ Ifc4x1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5317,12 +5519,14 @@ Ifc4x1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(IfcEntityInstanceDa } Ifc4x1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5356,12 +5560,14 @@ Ifc4x1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5394,12 +5600,14 @@ Ifc4x1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5431,12 +5639,14 @@ Ifc4x1::IfcKnotType::IfcKnotType(IfcEntityInstanceData* e) { } Ifc4x1::IfcKnotType::IfcKnotType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcKnotType::IfcKnotType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5468,12 +5678,14 @@ Ifc4x1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5522,12 +5734,14 @@ Ifc4x1::IfcLampTypeEnum::IfcLampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcLampTypeEnum::IfcLampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcLampTypeEnum::IfcLampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5566,12 +5780,14 @@ Ifc4x1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(IfcEntityInstanceData } Ifc4x1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5602,12 +5818,14 @@ Ifc4x1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(IfcEntityIn } Ifc4x1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5639,12 +5857,14 @@ Ifc4x1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(IfcEntityInstance } Ifc4x1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5683,12 +5903,14 @@ Ifc4x1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5721,12 +5943,14 @@ Ifc4x1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5759,12 +5983,14 @@ Ifc4x1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5797,12 +6023,14 @@ Ifc4x1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(IfcEntityIn } Ifc4x1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5842,12 +6070,14 @@ Ifc4x1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5882,12 +6112,14 @@ Ifc4x1::IfcMemberTypeEnum::IfcMemberTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcMemberTypeEnum::IfcMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5929,12 +6161,14 @@ Ifc4x1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(IfcEntityInstance } Ifc4x1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5967,12 +6201,14 @@ Ifc4x1::IfcNullStyle::IfcNullStyle(IfcEntityInstanceData* e) { } Ifc4x1::IfcNullStyle::IfcNullStyle(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcNullStyle::IfcNullStyle(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6001,12 +6237,14 @@ Ifc4x1::IfcObjectTypeEnum::IfcObjectTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcObjectTypeEnum::IfcObjectTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6042,12 +6280,14 @@ Ifc4x1::IfcObjectiveEnum::IfcObjectiveEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcObjectiveEnum::IfcObjectiveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcObjectiveEnum::IfcObjectiveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6088,12 +6328,14 @@ Ifc4x1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6130,12 +6372,14 @@ Ifc4x1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6167,12 +6411,14 @@ Ifc4x1::IfcOutletTypeEnum::IfcOutletTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcOutletTypeEnum::IfcOutletTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6207,12 +6453,14 @@ Ifc4x1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(IfcEntityIn } Ifc4x1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6242,12 +6490,14 @@ Ifc4x1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Ifc } Ifc4x1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6280,12 +6530,14 @@ Ifc4x1::IfcPermitTypeEnum::IfcPermitTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcPermitTypeEnum::IfcPermitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPermitTypeEnum::IfcPermitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6318,12 +6570,14 @@ Ifc4x1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(IfcEntityInstanceData } Ifc4x1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6354,12 +6608,14 @@ Ifc4x1::IfcPileConstructionEnum::IfcPileConstructionEnum(IfcEntityInstanceData* } Ifc4x1::IfcPileConstructionEnum::IfcPileConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6393,12 +6649,14 @@ Ifc4x1::IfcPileTypeEnum::IfcPileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcPileTypeEnum::IfcPileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPileTypeEnum::IfcPileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6434,12 +6692,14 @@ Ifc4x1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6476,12 +6736,14 @@ Ifc4x1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6516,12 +6778,14 @@ Ifc4x1::IfcPlateTypeEnum::IfcPlateTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcPlateTypeEnum::IfcPlateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6553,12 +6817,14 @@ Ifc4x1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresen } Ifc4x1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6589,12 +6855,14 @@ Ifc4x1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6631,12 +6899,14 @@ Ifc4x1::IfcProfileTypeEnum::IfcProfileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcProfileTypeEnum::IfcProfileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6666,12 +6936,14 @@ Ifc4x1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6706,12 +6978,14 @@ Ifc4x1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(IfcEntityInst } Ifc4x1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6741,12 +7015,14 @@ Ifc4x1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(IfcEntityInst } Ifc4x1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6776,12 +7052,14 @@ Ifc4x1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(IfcEntity } Ifc4x1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6817,12 +7095,14 @@ Ifc4x1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnit } Ifc4x1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6856,12 +7136,14 @@ Ifc4x1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(IfcEntityInstan } Ifc4x1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6898,12 +7180,14 @@ Ifc4x1::IfcPumpTypeEnum::IfcPumpTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcPumpTypeEnum::IfcPumpTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6940,12 +7224,14 @@ Ifc4x1::IfcRailingTypeEnum::IfcRailingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcRailingTypeEnum::IfcRailingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6978,12 +7264,14 @@ Ifc4x1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7015,12 +7303,14 @@ Ifc4x1::IfcRampTypeEnum::IfcRampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcRampTypeEnum::IfcRampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcRampTypeEnum::IfcRampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7056,12 +7346,14 @@ Ifc4x1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7097,12 +7389,14 @@ Ifc4x1::IfcReferentTypeEnum::IfcReferentTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcReferentTypeEnum::IfcReferentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcReferentTypeEnum::IfcReferentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7135,12 +7429,14 @@ Ifc4x1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(IfcEntityInstanceData } Ifc4x1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7178,12 +7474,14 @@ Ifc4x1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(IfcEntityInstanceDa } Ifc4x1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7221,12 +7519,14 @@ Ifc4x1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(IfcEntityInst } Ifc4x1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7256,12 +7556,14 @@ Ifc4x1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7299,12 +7601,14 @@ Ifc4x1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(IfcEntityInstance } Ifc4x1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7334,12 +7638,14 @@ Ifc4x1::IfcRoleEnum::IfcRoleEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcRoleEnum::IfcRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcRoleEnum::IfcRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7390,12 +7696,14 @@ Ifc4x1::IfcRoofTypeEnum::IfcRoofTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcRoofTypeEnum::IfcRoofTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7438,12 +7746,14 @@ Ifc4x1::IfcSIPrefix::IfcSIPrefix(IfcEntityInstanceData* e) { } Ifc4x1::IfcSIPrefix::IfcSIPrefix(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSIPrefix::IfcSIPrefix(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7487,12 +7797,14 @@ Ifc4x1::IfcSIUnitName::IfcSIUnitName(IfcEntityInstanceData* e) { } Ifc4x1::IfcSIUnitName::IfcSIUnitName(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSIUnitName::IfcSIUnitName(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7550,12 +7862,14 @@ Ifc4x1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(IfcEntityInstan } Ifc4x1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7595,12 +7909,14 @@ Ifc4x1::IfcSectionTypeEnum::IfcSectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcSectionTypeEnum::IfcSectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7630,12 +7946,14 @@ Ifc4x1::IfcSensorTypeEnum::IfcSensorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcSensorTypeEnum::IfcSensorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7689,12 +8007,14 @@ Ifc4x1::IfcSequenceEnum::IfcSequenceEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcSequenceEnum::IfcSequenceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSequenceEnum::IfcSequenceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7728,12 +8048,14 @@ Ifc4x1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7766,12 +8088,14 @@ Ifc4x1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Ifc } Ifc4x1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7811,12 +8135,14 @@ Ifc4x1::IfcSlabTypeEnum::IfcSlabTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcSlabTypeEnum::IfcSlabTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7850,12 +8176,14 @@ Ifc4x1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7887,12 +8215,14 @@ Ifc4x1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7924,12 +8254,14 @@ Ifc4x1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7964,12 +8296,14 @@ Ifc4x1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8007,12 +8341,14 @@ Ifc4x1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8045,12 +8381,14 @@ Ifc4x1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8085,12 +8423,14 @@ Ifc4x1::IfcStairTypeEnum::IfcStairTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcStairTypeEnum::IfcStairTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcStairTypeEnum::IfcStairTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8134,12 +8474,14 @@ Ifc4x1::IfcStateEnum::IfcStateEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcStateEnum::IfcStateEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcStateEnum::IfcStateEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8172,12 +8514,14 @@ Ifc4x1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(I } Ifc4x1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8214,12 +8558,14 @@ Ifc4x1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(IfcEn } Ifc4x1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8254,12 +8600,14 @@ Ifc4x1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEn } Ifc4x1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8293,12 +8641,14 @@ Ifc4x1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(I } Ifc4x1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8331,12 +8681,14 @@ Ifc4x1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(IfcEntity } Ifc4x1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8368,12 +8720,14 @@ Ifc4x1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8406,12 +8760,14 @@ Ifc4x1::IfcSurfaceSide::IfcSurfaceSide(IfcEntityInstanceData* e) { } Ifc4x1::IfcSurfaceSide::IfcSurfaceSide(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSurfaceSide::IfcSurfaceSide(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8442,12 +8798,14 @@ Ifc4x1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(IfcEntityInstance } Ifc4x1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8486,12 +8844,14 @@ Ifc4x1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Ifc } Ifc4x1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8523,12 +8883,14 @@ Ifc4x1::IfcTankTypeEnum::IfcTankTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcTankTypeEnum::IfcTankTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTankTypeEnum::IfcTankTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8565,12 +8927,14 @@ Ifc4x1::IfcTaskDurationEnum::IfcTaskDurationEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcTaskDurationEnum::IfcTaskDurationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTaskDurationEnum::IfcTaskDurationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8601,12 +8965,14 @@ Ifc4x1::IfcTaskTypeEnum::IfcTaskTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcTaskTypeEnum::IfcTaskTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTaskTypeEnum::IfcTaskTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8648,12 +9014,14 @@ Ifc4x1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8686,12 +9054,14 @@ Ifc4x1::IfcTendonTypeEnum::IfcTendonTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcTendonTypeEnum::IfcTendonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8725,12 +9095,14 @@ Ifc4x1::IfcTextPath::IfcTextPath(IfcEntityInstanceData* e) { } Ifc4x1::IfcTextPath::IfcTextPath(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTextPath::IfcTextPath(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8762,12 +9134,14 @@ Ifc4x1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8802,12 +9176,14 @@ Ifc4x1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(IfcEntityInstanceData* e) } Ifc4x1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8842,12 +9218,14 @@ Ifc4x1::IfcTransitionCode::IfcTransitionCode(IfcEntityInstanceData* e) { } Ifc4x1::IfcTransitionCode::IfcTransitionCode(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTransitionCode::IfcTransitionCode(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8879,12 +9257,14 @@ Ifc4x1::IfcTransitionCurveType::IfcTransitionCurveType(IfcEntityInstanceData* e) } Ifc4x1::IfcTransitionCurveType::IfcTransitionCurveType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTransitionCurveType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTransitionCurveType::IfcTransitionCurveType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTransitionCurveType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8918,12 +9298,14 @@ Ifc4x1::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(IfcEntityInstan } Ifc4x1::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTransportElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTransportElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8958,12 +9340,14 @@ Ifc4x1::IfcTrimmingPreference::IfcTrimmingPreference(IfcEntityInstanceData* e) { } Ifc4x1::IfcTrimmingPreference::IfcTrimmingPreference(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTrimmingPreference::IfcTrimmingPreference(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8994,12 +9378,14 @@ Ifc4x1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9030,12 +9416,14 @@ Ifc4x1::IfcUnitEnum::IfcUnitEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcUnitEnum::IfcUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcUnitEnum::IfcUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9093,12 +9481,14 @@ Ifc4x1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(IfcEn } Ifc4x1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9136,12 +9526,14 @@ Ifc4x1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(IfcEntityInstan } Ifc4x1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9176,12 +9568,14 @@ Ifc4x1::IfcValveTypeEnum::IfcValveTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcValveTypeEnum::IfcValveTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcValveTypeEnum::IfcValveTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9232,12 +9626,14 @@ Ifc4x1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(IfcEntityInst } Ifc4x1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9269,12 +9665,14 @@ Ifc4x1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(IfcEntityInstanceDa } Ifc4x1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9310,12 +9708,14 @@ Ifc4x1::IfcWallTypeEnum::IfcWallTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcWallTypeEnum::IfcWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWallTypeEnum::IfcWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9354,12 +9754,14 @@ Ifc4x1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(IfcEntityInstanceData } Ifc4x1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9396,12 +9798,14 @@ Ifc4x1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(IfcEntityInstan } Ifc4x1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9443,12 +9847,14 @@ Ifc4x1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(IfcEntityInstance } Ifc4x1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9482,12 +9888,14 @@ Ifc4x1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(IfcEntity } Ifc4x1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9523,12 +9931,14 @@ Ifc4x1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(IfcEntityInstan } Ifc4x1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9567,12 +9977,14 @@ Ifc4x1::IfcWindowTypeEnum::IfcWindowTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcWindowTypeEnum::IfcWindowTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWindowTypeEnum::IfcWindowTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9605,12 +10017,14 @@ Ifc4x1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(IfcEntityIn } Ifc4x1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9649,12 +10063,14 @@ Ifc4x1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9687,12 +10103,14 @@ Ifc4x1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9725,12 +10143,14 @@ Ifc4x1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(IfcEntityInstanceData* } Ifc4x1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X1_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); diff --git a/src/ifcparse/Ifc4x2.cpp b/src/ifcparse/Ifc4x2.cpp index 5dd21550bd..0910db0e4c 100644 --- a/src/ifcparse/Ifc4x2.cpp +++ b/src/ifcparse/Ifc4x2.cpp @@ -1210,12 +1210,14 @@ Ifc4x2::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1250,12 +1252,14 @@ Ifc4x2::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1310,12 +1314,14 @@ Ifc4x2::IfcActionTypeEnum::IfcActionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcActionTypeEnum::IfcActionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcActionTypeEnum::IfcActionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1348,12 +1354,14 @@ Ifc4x2::IfcActuatorTypeEnum::IfcActuatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcActuatorTypeEnum::IfcActuatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1388,12 +1396,14 @@ Ifc4x2::IfcAddressTypeEnum::IfcAddressTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcAddressTypeEnum::IfcAddressTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1426,12 +1436,14 @@ Ifc4x2::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1464,12 +1476,14 @@ Ifc4x2::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1503,12 +1517,14 @@ Ifc4x2::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(IfcEnti } Ifc4x2::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1547,12 +1563,14 @@ Ifc4x2::IfcAlarmTypeEnum::IfcAlarmTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcAlarmTypeEnum::IfcAlarmTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1588,12 +1606,14 @@ Ifc4x2::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1623,12 +1643,14 @@ Ifc4x2::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1661,12 +1683,14 @@ Ifc4x2::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1700,12 +1724,14 @@ Ifc4x2::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(IfcEntityInstanceDa } Ifc4x2::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1737,12 +1763,14 @@ Ifc4x2::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1773,12 +1801,14 @@ Ifc4x2::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(IfcEnti } Ifc4x2::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1819,12 +1849,14 @@ Ifc4x2::IfcBSplineCurveForm::IfcBSplineCurveForm(IfcEntityInstanceData* e) { } Ifc4x2::IfcBSplineCurveForm::IfcBSplineCurveForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1858,12 +1890,14 @@ Ifc4x2::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(IfcEntityInstanceData* e) { } Ifc4x2::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1902,12 +1936,14 @@ Ifc4x2::IfcBeamTypeEnum::IfcBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcBeamTypeEnum::IfcBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1949,12 +1985,14 @@ Ifc4x2::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(IfcEntity } Ifc4x2::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBearingTypeDisplacementEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBearingTypeDisplacementEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1987,12 +2025,14 @@ Ifc4x2::IfcBearingTypeEnum::IfcBearingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcBearingTypeEnum::IfcBearingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBearingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBearingTypeEnum::IfcBearingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBearingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2030,12 +2070,14 @@ Ifc4x2::IfcBenchmarkEnum::IfcBenchmarkEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcBenchmarkEnum::IfcBenchmarkEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2073,12 +2115,14 @@ Ifc4x2::IfcBoilerTypeEnum::IfcBoilerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcBoilerTypeEnum::IfcBoilerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2110,12 +2154,14 @@ Ifc4x2::IfcBooleanOperator::IfcBooleanOperator(IfcEntityInstanceData* e) { } Ifc4x2::IfcBooleanOperator::IfcBooleanOperator(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBooleanOperator::IfcBooleanOperator(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2146,12 +2192,14 @@ Ifc4x2::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBridgePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBridgePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2191,12 +2239,14 @@ Ifc4x2::IfcBridgeTypeEnum::IfcBridgeTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcBridgeTypeEnum::IfcBridgeTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBridgeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBridgeTypeEnum::IfcBridgeTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBridgeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2234,12 +2284,14 @@ Ifc4x2::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(IfcEntity } Ifc4x2::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2272,12 +2324,14 @@ Ifc4x2::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(IfcEnti } Ifc4x2::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2312,12 +2366,14 @@ Ifc4x2::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2355,12 +2411,14 @@ Ifc4x2::IfcBurnerTypeEnum::IfcBurnerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcBurnerTypeEnum::IfcBurnerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcBurnerTypeEnum::IfcBurnerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2390,12 +2448,14 @@ Ifc4x2::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(IfcEntity } Ifc4x2::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2429,12 +2489,14 @@ Ifc4x2::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(IfcEntity } Ifc4x2::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2468,12 +2530,14 @@ Ifc4x2::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2508,12 +2572,14 @@ Ifc4x2::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2547,12 +2613,14 @@ Ifc4x2::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(IfcEntityInst } Ifc4x2::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCaissonFoundationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCaissonFoundationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2584,12 +2652,14 @@ Ifc4x2::IfcChangeActionEnum::IfcChangeActionEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcChangeActionEnum::IfcChangeActionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcChangeActionEnum::IfcChangeActionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2622,12 +2692,14 @@ Ifc4x2::IfcChillerTypeEnum::IfcChillerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcChillerTypeEnum::IfcChillerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2660,12 +2732,14 @@ Ifc4x2::IfcChimneyTypeEnum::IfcChimneyTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcChimneyTypeEnum::IfcChimneyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcChimneyTypeEnum::IfcChimneyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2695,12 +2769,14 @@ Ifc4x2::IfcCoilTypeEnum::IfcCoilTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcCoilTypeEnum::IfcCoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2737,12 +2813,14 @@ Ifc4x2::IfcColumnTypeEnum::IfcColumnTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcColumnTypeEnum::IfcColumnTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2777,12 +2855,14 @@ Ifc4x2::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(I } Ifc4x2::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2824,12 +2904,14 @@ Ifc4x2::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(I } Ifc4x2::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2859,12 +2941,14 @@ Ifc4x2::IfcCompressorTypeEnum::IfcCompressorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcCompressorTypeEnum::IfcCompressorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2909,12 +2993,14 @@ Ifc4x2::IfcCondenserTypeEnum::IfcCondenserTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcCondenserTypeEnum::IfcCondenserTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2951,12 +3037,14 @@ Ifc4x2::IfcConnectionTypeEnum::IfcConnectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcConnectionTypeEnum::IfcConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2988,12 +3076,14 @@ Ifc4x2::IfcConstraintEnum::IfcConstraintEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcConstraintEnum::IfcConstraintEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcConstraintEnum::IfcConstraintEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3026,12 +3116,14 @@ Ifc4x2::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResour } Ifc4x2::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3069,12 +3161,14 @@ Ifc4x2::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResource } Ifc4x2::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3113,12 +3207,14 @@ Ifc4x2::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTy } Ifc4x2::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3150,12 +3246,14 @@ Ifc4x2::IfcControllerTypeEnum::IfcControllerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcControllerTypeEnum::IfcControllerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3190,12 +3288,14 @@ Ifc4x2::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3227,12 +3327,14 @@ Ifc4x2::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3265,12 +3367,14 @@ Ifc4x2::IfcCostItemTypeEnum::IfcCostItemTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcCostItemTypeEnum::IfcCostItemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCostItemTypeEnum::IfcCostItemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3300,12 +3404,14 @@ Ifc4x2::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3342,12 +3448,14 @@ Ifc4x2::IfcCoveringTypeEnum::IfcCoveringTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcCoveringTypeEnum::IfcCoveringTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3388,12 +3496,14 @@ Ifc4x2::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3425,12 +3535,14 @@ Ifc4x2::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3460,12 +3572,14 @@ Ifc4x2::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(IfcEntityInstanceDa } Ifc4x2::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3497,12 +3611,14 @@ Ifc4x2::IfcDamperTypeEnum::IfcDamperTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcDamperTypeEnum::IfcDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3543,12 +3659,14 @@ Ifc4x2::IfcDataOriginEnum::IfcDataOriginEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcDataOriginEnum::IfcDataOriginEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDataOriginEnum::IfcDataOriginEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3581,12 +3699,14 @@ Ifc4x2::IfcDerivedUnitEnum::IfcDerivedUnitEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcDerivedUnitEnum::IfcDerivedUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3667,12 +3787,14 @@ Ifc4x2::IfcDirectionSenseEnum::IfcDirectionSenseEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcDirectionSenseEnum::IfcDirectionSenseEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3702,12 +3824,14 @@ Ifc4x2::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(IfcEntityInst } Ifc4x2::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3741,12 +3865,14 @@ Ifc4x2::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementType } Ifc4x2::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3784,12 +3910,14 @@ Ifc4x2::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(IfcEntityInstan } Ifc4x2::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3823,12 +3951,14 @@ Ifc4x2::IfcDistributionSystemEnum::IfcDistributionSystemEnum(IfcEntityInstanceDa } Ifc4x2::IfcDistributionSystemEnum::IfcDistributionSystemEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDistributionSystemEnum::IfcDistributionSystemEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3900,12 +4030,14 @@ Ifc4x2::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(IfcEntity } Ifc4x2::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3939,12 +4071,14 @@ Ifc4x2::IfcDocumentStatusEnum::IfcDocumentStatusEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcDocumentStatusEnum::IfcDocumentStatusEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3977,12 +4111,14 @@ Ifc4x2::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(IfcEntityInstanceDa } Ifc4x2::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4019,12 +4155,14 @@ Ifc4x2::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(IfcEntityInstanceData } Ifc4x2::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4056,12 +4194,14 @@ Ifc4x2::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(IfcEntityInst } Ifc4x2::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4098,12 +4238,14 @@ Ifc4x2::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(IfcEntityInstanceDa } Ifc4x2::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4149,12 +4291,14 @@ Ifc4x2::IfcDoorTypeEnum::IfcDoorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcDoorTypeEnum::IfcDoorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDoorTypeEnum::IfcDoorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4187,12 +4331,14 @@ Ifc4x2::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(IfcEntityInstanceData } Ifc4x2::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4240,12 +4386,14 @@ Ifc4x2::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4282,12 +4430,14 @@ Ifc4x2::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4319,12 +4469,14 @@ Ifc4x2::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4357,12 +4509,14 @@ Ifc4x2::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(IfcEntityInst } Ifc4x2::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4408,12 +4562,14 @@ Ifc4x2::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEn } Ifc4x2::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4447,12 +4603,14 @@ Ifc4x2::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEn } Ifc4x2::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4487,12 +4645,14 @@ Ifc4x2::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(IfcEntityInst } Ifc4x2::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4525,12 +4685,14 @@ Ifc4x2::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4565,12 +4727,14 @@ Ifc4x2::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(IfcEntity } Ifc4x2::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4603,12 +4767,14 @@ Ifc4x2::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(IfcEntityInstance } Ifc4x2::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4652,12 +4818,14 @@ Ifc4x2::IfcElementCompositionEnum::IfcElementCompositionEnum(IfcEntityInstanceDa } Ifc4x2::IfcElementCompositionEnum::IfcElementCompositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4688,12 +4856,14 @@ Ifc4x2::IfcEngineTypeEnum::IfcEngineTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcEngineTypeEnum::IfcEngineTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcEngineTypeEnum::IfcEngineTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4725,12 +4895,14 @@ Ifc4x2::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(IfcEntityInst } Ifc4x2::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4769,12 +4941,14 @@ Ifc4x2::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4810,12 +4984,14 @@ Ifc4x2::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4849,12 +5025,14 @@ Ifc4x2::IfcEventTypeEnum::IfcEventTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcEventTypeEnum::IfcEventTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcEventTypeEnum::IfcEventTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4887,12 +5065,14 @@ Ifc4x2::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Ifc } Ifc4x2::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4926,12 +5106,14 @@ Ifc4x2::IfcFanTypeEnum::IfcFanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcFanTypeEnum::IfcFanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFanTypeEnum::IfcFanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4968,12 +5150,14 @@ Ifc4x2::IfcFastenerTypeEnum::IfcFastenerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcFastenerTypeEnum::IfcFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFastenerTypeEnum::IfcFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5006,12 +5190,14 @@ Ifc4x2::IfcFilterTypeEnum::IfcFilterTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcFilterTypeEnum::IfcFilterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5047,12 +5233,14 @@ Ifc4x2::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(I } Ifc4x2::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5087,12 +5275,14 @@ Ifc4x2::IfcFlowDirectionEnum::IfcFlowDirectionEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcFlowDirectionEnum::IfcFlowDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5124,12 +5314,14 @@ Ifc4x2::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5167,12 +5359,14 @@ Ifc4x2::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5206,12 +5400,14 @@ Ifc4x2::IfcFootingTypeEnum::IfcFootingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcFootingTypeEnum::IfcFootingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5246,12 +5442,14 @@ Ifc4x2::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5288,12 +5486,14 @@ Ifc4x2::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(IfcEntityInst } Ifc4x2::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5325,12 +5525,14 @@ Ifc4x2::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(IfcEntityInstance } Ifc4x2::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5367,12 +5569,14 @@ Ifc4x2::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5402,12 +5606,14 @@ Ifc4x2::IfcGridTypeEnum::IfcGridTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcGridTypeEnum::IfcGridTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcGridTypeEnum::IfcGridTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5441,12 +5647,14 @@ Ifc4x2::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5478,12 +5686,14 @@ Ifc4x2::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5526,12 +5736,14 @@ Ifc4x2::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5565,12 +5777,14 @@ Ifc4x2::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(IfcEntityInstanceDa } Ifc4x2::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5604,12 +5818,14 @@ Ifc4x2::IfcInventoryTypeEnum::IfcInventoryTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcInventoryTypeEnum::IfcInventoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5642,12 +5858,14 @@ Ifc4x2::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5679,12 +5897,14 @@ Ifc4x2::IfcKnotType::IfcKnotType(IfcEntityInstanceData* e) { } Ifc4x2::IfcKnotType::IfcKnotType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcKnotType::IfcKnotType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5716,12 +5936,14 @@ Ifc4x2::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5770,12 +5992,14 @@ Ifc4x2::IfcLampTypeEnum::IfcLampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcLampTypeEnum::IfcLampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcLampTypeEnum::IfcLampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5814,12 +6038,14 @@ Ifc4x2::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(IfcEntityInstanceData } Ifc4x2::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5850,12 +6076,14 @@ Ifc4x2::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(IfcEntityIn } Ifc4x2::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5887,12 +6115,14 @@ Ifc4x2::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(IfcEntityInstance } Ifc4x2::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5931,12 +6161,14 @@ Ifc4x2::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5969,12 +6201,14 @@ Ifc4x2::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6007,12 +6241,14 @@ Ifc4x2::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6045,12 +6281,14 @@ Ifc4x2::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(IfcEntityIn } Ifc4x2::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6091,12 +6329,14 @@ Ifc4x2::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6131,12 +6371,14 @@ Ifc4x2::IfcMemberTypeEnum::IfcMemberTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcMemberTypeEnum::IfcMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6183,12 +6425,14 @@ Ifc4x2::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(IfcEntityInstance } Ifc4x2::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6221,12 +6465,14 @@ Ifc4x2::IfcNullStyle::IfcNullStyle(IfcEntityInstanceData* e) { } Ifc4x2::IfcNullStyle::IfcNullStyle(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcNullStyle::IfcNullStyle(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6255,12 +6501,14 @@ Ifc4x2::IfcObjectTypeEnum::IfcObjectTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcObjectTypeEnum::IfcObjectTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6296,12 +6544,14 @@ Ifc4x2::IfcObjectiveEnum::IfcObjectiveEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcObjectiveEnum::IfcObjectiveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcObjectiveEnum::IfcObjectiveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6342,12 +6592,14 @@ Ifc4x2::IfcOccupantTypeEnum::IfcOccupantTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcOccupantTypeEnum::IfcOccupantTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6384,12 +6636,14 @@ Ifc4x2::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6421,12 +6675,14 @@ Ifc4x2::IfcOutletTypeEnum::IfcOutletTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcOutletTypeEnum::IfcOutletTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6461,12 +6717,14 @@ Ifc4x2::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(IfcEntityIn } Ifc4x2::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6496,12 +6754,14 @@ Ifc4x2::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Ifc } Ifc4x2::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6534,12 +6794,14 @@ Ifc4x2::IfcPermitTypeEnum::IfcPermitTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcPermitTypeEnum::IfcPermitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPermitTypeEnum::IfcPermitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6572,12 +6834,14 @@ Ifc4x2::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(IfcEntityInstanceData } Ifc4x2::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6608,12 +6872,14 @@ Ifc4x2::IfcPileConstructionEnum::IfcPileConstructionEnum(IfcEntityInstanceData* } Ifc4x2::IfcPileConstructionEnum::IfcPileConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6647,12 +6913,14 @@ Ifc4x2::IfcPileTypeEnum::IfcPileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcPileTypeEnum::IfcPileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPileTypeEnum::IfcPileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6688,12 +6956,14 @@ Ifc4x2::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6730,12 +7000,14 @@ Ifc4x2::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6770,12 +7042,14 @@ Ifc4x2::IfcPlateTypeEnum::IfcPlateTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcPlateTypeEnum::IfcPlateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6814,12 +7088,14 @@ Ifc4x2::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresen } Ifc4x2::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6850,12 +7126,14 @@ Ifc4x2::IfcProcedureTypeEnum::IfcProcedureTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcProcedureTypeEnum::IfcProcedureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6892,12 +7170,14 @@ Ifc4x2::IfcProfileTypeEnum::IfcProfileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcProfileTypeEnum::IfcProfileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6927,12 +7207,14 @@ Ifc4x2::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6967,12 +7249,14 @@ Ifc4x2::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(IfcEntityInst } Ifc4x2::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7002,12 +7286,14 @@ Ifc4x2::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(IfcEntityInst } Ifc4x2::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7039,12 +7325,14 @@ Ifc4x2::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(IfcEntity } Ifc4x2::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7080,12 +7368,14 @@ Ifc4x2::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnit } Ifc4x2::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7119,12 +7409,14 @@ Ifc4x2::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(IfcEntityInstan } Ifc4x2::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7161,12 +7453,14 @@ Ifc4x2::IfcPumpTypeEnum::IfcPumpTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcPumpTypeEnum::IfcPumpTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7203,12 +7497,14 @@ Ifc4x2::IfcRailingTypeEnum::IfcRailingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcRailingTypeEnum::IfcRailingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7241,12 +7537,14 @@ Ifc4x2::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7278,12 +7576,14 @@ Ifc4x2::IfcRampTypeEnum::IfcRampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcRampTypeEnum::IfcRampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcRampTypeEnum::IfcRampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7319,12 +7619,14 @@ Ifc4x2::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7360,12 +7662,14 @@ Ifc4x2::IfcReferentTypeEnum::IfcReferentTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcReferentTypeEnum::IfcReferentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcReferentTypeEnum::IfcReferentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7398,12 +7702,14 @@ Ifc4x2::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(IfcEntityInstanceData } Ifc4x2::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7441,12 +7747,14 @@ Ifc4x2::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(IfcEntityInstanceDa } Ifc4x2::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7484,12 +7792,14 @@ Ifc4x2::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(IfcEntityInst } Ifc4x2::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7519,12 +7829,14 @@ Ifc4x2::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7563,12 +7875,14 @@ Ifc4x2::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(IfcEntityInstance } Ifc4x2::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7598,12 +7912,14 @@ Ifc4x2::IfcRoleEnum::IfcRoleEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcRoleEnum::IfcRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcRoleEnum::IfcRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7654,12 +7970,14 @@ Ifc4x2::IfcRoofTypeEnum::IfcRoofTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcRoofTypeEnum::IfcRoofTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7702,12 +8020,14 @@ Ifc4x2::IfcSIPrefix::IfcSIPrefix(IfcEntityInstanceData* e) { } Ifc4x2::IfcSIPrefix::IfcSIPrefix(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSIPrefix::IfcSIPrefix(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7751,12 +8071,14 @@ Ifc4x2::IfcSIUnitName::IfcSIUnitName(IfcEntityInstanceData* e) { } Ifc4x2::IfcSIUnitName::IfcSIUnitName(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSIUnitName::IfcSIUnitName(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7814,12 +8136,14 @@ Ifc4x2::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(IfcEntityInstan } Ifc4x2::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7859,12 +8183,14 @@ Ifc4x2::IfcSectionTypeEnum::IfcSectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcSectionTypeEnum::IfcSectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7894,12 +8220,14 @@ Ifc4x2::IfcSensorTypeEnum::IfcSensorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcSensorTypeEnum::IfcSensorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7953,12 +8281,14 @@ Ifc4x2::IfcSequenceEnum::IfcSequenceEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcSequenceEnum::IfcSequenceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSequenceEnum::IfcSequenceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7992,12 +8322,14 @@ Ifc4x2::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8030,12 +8362,14 @@ Ifc4x2::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Ifc } Ifc4x2::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8075,12 +8409,14 @@ Ifc4x2::IfcSlabTypeEnum::IfcSlabTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcSlabTypeEnum::IfcSlabTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8118,12 +8454,14 @@ Ifc4x2::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8155,12 +8493,14 @@ Ifc4x2::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8192,12 +8532,14 @@ Ifc4x2::IfcSpaceTypeEnum::IfcSpaceTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcSpaceTypeEnum::IfcSpaceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8232,12 +8574,14 @@ Ifc4x2::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8275,12 +8619,14 @@ Ifc4x2::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8313,12 +8659,14 @@ Ifc4x2::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8353,12 +8701,14 @@ Ifc4x2::IfcStairTypeEnum::IfcStairTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcStairTypeEnum::IfcStairTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcStairTypeEnum::IfcStairTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8402,12 +8752,14 @@ Ifc4x2::IfcStateEnum::IfcStateEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcStateEnum::IfcStateEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcStateEnum::IfcStateEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8440,12 +8792,14 @@ Ifc4x2::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(I } Ifc4x2::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8482,12 +8836,14 @@ Ifc4x2::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(IfcEn } Ifc4x2::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8522,12 +8878,14 @@ Ifc4x2::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEn } Ifc4x2::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8561,12 +8919,14 @@ Ifc4x2::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(I } Ifc4x2::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8599,12 +8959,14 @@ Ifc4x2::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(IfcEntity } Ifc4x2::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8636,12 +8998,14 @@ Ifc4x2::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8675,12 +9039,14 @@ Ifc4x2::IfcSurfaceSide::IfcSurfaceSide(IfcEntityInstanceData* e) { } Ifc4x2::IfcSurfaceSide::IfcSurfaceSide(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSurfaceSide::IfcSurfaceSide(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8711,12 +9077,14 @@ Ifc4x2::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(IfcEntityInstance } Ifc4x2::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8755,12 +9123,14 @@ Ifc4x2::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Ifc } Ifc4x2::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8792,12 +9162,14 @@ Ifc4x2::IfcTankTypeEnum::IfcTankTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcTankTypeEnum::IfcTankTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTankTypeEnum::IfcTankTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8834,12 +9206,14 @@ Ifc4x2::IfcTaskDurationEnum::IfcTaskDurationEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcTaskDurationEnum::IfcTaskDurationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTaskDurationEnum::IfcTaskDurationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8870,12 +9244,14 @@ Ifc4x2::IfcTaskTypeEnum::IfcTaskTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcTaskTypeEnum::IfcTaskTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTaskTypeEnum::IfcTaskTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8917,12 +9293,14 @@ Ifc4x2::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8955,12 +9333,14 @@ Ifc4x2::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTendonConduitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTendonConduitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8995,12 +9375,14 @@ Ifc4x2::IfcTendonTypeEnum::IfcTendonTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcTendonTypeEnum::IfcTendonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9034,12 +9416,14 @@ Ifc4x2::IfcTextPath::IfcTextPath(IfcEntityInstanceData* e) { } Ifc4x2::IfcTextPath::IfcTextPath(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTextPath::IfcTextPath(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9071,12 +9455,14 @@ Ifc4x2::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9111,12 +9497,14 @@ Ifc4x2::IfcTransformerTypeEnum::IfcTransformerTypeEnum(IfcEntityInstanceData* e) } Ifc4x2::IfcTransformerTypeEnum::IfcTransformerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9151,12 +9539,14 @@ Ifc4x2::IfcTransitionCode::IfcTransitionCode(IfcEntityInstanceData* e) { } Ifc4x2::IfcTransitionCode::IfcTransitionCode(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTransitionCode::IfcTransitionCode(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9188,12 +9578,14 @@ Ifc4x2::IfcTransitionCurveType::IfcTransitionCurveType(IfcEntityInstanceData* e) } Ifc4x2::IfcTransitionCurveType::IfcTransitionCurveType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTransitionCurveType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTransitionCurveType::IfcTransitionCurveType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTransitionCurveType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9227,12 +9619,14 @@ Ifc4x2::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(IfcEntityInstan } Ifc4x2::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTransportElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTransportElementTypeEnum::IfcTransportElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTransportElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9267,12 +9661,14 @@ Ifc4x2::IfcTrimmingPreference::IfcTrimmingPreference(IfcEntityInstanceData* e) { } Ifc4x2::IfcTrimmingPreference::IfcTrimmingPreference(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTrimmingPreference::IfcTrimmingPreference(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9303,12 +9699,14 @@ Ifc4x2::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9339,12 +9737,14 @@ Ifc4x2::IfcUnitEnum::IfcUnitEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcUnitEnum::IfcUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcUnitEnum::IfcUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9402,12 +9802,14 @@ Ifc4x2::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(IfcEn } Ifc4x2::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9445,12 +9847,14 @@ Ifc4x2::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(IfcEntityInstan } Ifc4x2::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9485,12 +9889,14 @@ Ifc4x2::IfcValveTypeEnum::IfcValveTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcValveTypeEnum::IfcValveTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcValveTypeEnum::IfcValveTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9541,12 +9947,14 @@ Ifc4x2::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(IfcEntityInstance } Ifc4x2::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcVibrationDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcVibrationDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9582,12 +9990,14 @@ Ifc4x2::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(IfcEntityInst } Ifc4x2::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9620,12 +10030,14 @@ Ifc4x2::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(IfcEntityInstanceDa } Ifc4x2::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9661,12 +10073,14 @@ Ifc4x2::IfcWallTypeEnum::IfcWallTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcWallTypeEnum::IfcWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWallTypeEnum::IfcWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9706,12 +10120,14 @@ Ifc4x2::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(IfcEntityInstanceData } Ifc4x2::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9748,12 +10164,14 @@ Ifc4x2::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(IfcEntityInstan } Ifc4x2::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9795,12 +10213,14 @@ Ifc4x2::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(IfcEntityInstance } Ifc4x2::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9834,12 +10254,14 @@ Ifc4x2::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(IfcEntity } Ifc4x2::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9875,12 +10297,14 @@ Ifc4x2::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(IfcEntityInstan } Ifc4x2::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9919,12 +10343,14 @@ Ifc4x2::IfcWindowTypeEnum::IfcWindowTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcWindowTypeEnum::IfcWindowTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWindowTypeEnum::IfcWindowTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9957,12 +10383,14 @@ Ifc4x2::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(IfcEntityIn } Ifc4x2::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10001,12 +10429,14 @@ Ifc4x2::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10039,12 +10469,14 @@ Ifc4x2::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x2::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10077,12 +10509,14 @@ Ifc4x2::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(IfcEntityInstanceData* } Ifc4x2::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x2::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X2_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); diff --git a/src/ifcparse/Ifc4x3_rc1.cpp b/src/ifcparse/Ifc4x3_rc1.cpp index dca10d68c2..4aecde4000 100644 --- a/src/ifcparse/Ifc4x3_rc1.cpp +++ b/src/ifcparse/Ifc4x3_rc1.cpp @@ -1298,12 +1298,14 @@ Ifc4x3_rc1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1338,12 +1340,14 @@ Ifc4x3_rc1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1398,12 +1402,14 @@ Ifc4x3_rc1::IfcActionTypeEnum::IfcActionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcActionTypeEnum::IfcActionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcActionTypeEnum::IfcActionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1436,12 +1442,14 @@ Ifc4x3_rc1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1476,12 +1484,14 @@ Ifc4x3_rc1::IfcAddressTypeEnum::IfcAddressTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcAddressTypeEnum::IfcAddressTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1514,12 +1524,14 @@ Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1552,12 +1564,14 @@ Ifc4x3_rc1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1591,12 +1605,14 @@ Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Ifc } Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1635,12 +1651,14 @@ Ifc4x3_rc1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1678,12 +1696,14 @@ Ifc4x3_rc1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1713,12 +1733,14 @@ Ifc4x3_rc1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1751,12 +1773,14 @@ Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1790,12 +1814,14 @@ Ifc4x3_rc1::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAnnotationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAnnotationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1834,12 +1860,14 @@ Ifc4x3_rc1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(IfcEntityInstan } Ifc4x3_rc1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1871,12 +1899,14 @@ Ifc4x3_rc1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1907,12 +1937,14 @@ Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Ifc } Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1954,12 +1986,14 @@ Ifc4x3_rc1::IfcBSplineCurveForm::IfcBSplineCurveForm(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcBSplineCurveForm::IfcBSplineCurveForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1993,12 +2027,14 @@ Ifc4x3_rc1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(IfcEntityInstanceData* } Ifc4x3_rc1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2037,12 +2073,14 @@ Ifc4x3_rc1::IfcBeamTypeEnum::IfcBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcBeamTypeEnum::IfcBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2084,12 +2122,14 @@ Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(IfcEn } Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBearingTypeDisplacementEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBearingTypeDisplacementEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2122,12 +2162,14 @@ Ifc4x3_rc1::IfcBearingTypeEnum::IfcBearingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcBearingTypeEnum::IfcBearingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBearingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBearingTypeEnum::IfcBearingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBearingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2165,12 +2207,14 @@ Ifc4x3_rc1::IfcBenchmarkEnum::IfcBenchmarkEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcBenchmarkEnum::IfcBenchmarkEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2208,12 +2252,14 @@ Ifc4x3_rc1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2245,12 +2291,14 @@ Ifc4x3_rc1::IfcBooleanOperator::IfcBooleanOperator(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcBooleanOperator::IfcBooleanOperator(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBooleanOperator::IfcBooleanOperator(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2281,12 +2329,14 @@ Ifc4x3_rc1::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBridgePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBridgePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2326,12 +2376,14 @@ Ifc4x3_rc1::IfcBridgeTypeEnum::IfcBridgeTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcBridgeTypeEnum::IfcBridgeTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBridgeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBridgeTypeEnum::IfcBridgeTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBridgeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2369,12 +2421,14 @@ Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(IfcEn } Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2409,12 +2463,14 @@ Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Ifc } Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2449,12 +2505,14 @@ Ifc4x3_rc1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2493,12 +2551,14 @@ Ifc4x3_rc1::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBuiltSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBuiltSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2540,12 +2600,14 @@ Ifc4x3_rc1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcBurnerTypeEnum::IfcBurnerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2575,12 +2637,14 @@ Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(IfcEn } Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2614,12 +2678,14 @@ Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(IfcEn } Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2656,12 +2722,14 @@ Ifc4x3_rc1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2697,12 +2765,14 @@ Ifc4x3_rc1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2742,12 +2812,14 @@ Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(IfcEntity } Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCaissonFoundationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCaissonFoundationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2779,12 +2851,14 @@ Ifc4x3_rc1::IfcChangeActionEnum::IfcChangeActionEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcChangeActionEnum::IfcChangeActionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcChangeActionEnum::IfcChangeActionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2817,12 +2891,14 @@ Ifc4x3_rc1::IfcChillerTypeEnum::IfcChillerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcChillerTypeEnum::IfcChillerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2855,12 +2931,14 @@ Ifc4x3_rc1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcChimneyTypeEnum::IfcChimneyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2890,12 +2968,14 @@ Ifc4x3_rc1::IfcCoilTypeEnum::IfcCoilTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcCoilTypeEnum::IfcCoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2932,12 +3012,14 @@ Ifc4x3_rc1::IfcColumnTypeEnum::IfcColumnTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcColumnTypeEnum::IfcColumnTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2972,12 +3054,14 @@ Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEn } Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3028,12 +3112,14 @@ Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEn } Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3063,12 +3149,14 @@ Ifc4x3_rc1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3113,12 +3201,14 @@ Ifc4x3_rc1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3155,12 +3245,14 @@ Ifc4x3_rc1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3192,12 +3284,14 @@ Ifc4x3_rc1::IfcConstraintEnum::IfcConstraintEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcConstraintEnum::IfcConstraintEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcConstraintEnum::IfcConstraintEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3230,12 +3324,14 @@ Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentRe } Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3273,12 +3369,14 @@ Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialReso } Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3317,12 +3415,14 @@ Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResour } Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3354,12 +3454,14 @@ Ifc4x3_rc1::IfcControllerTypeEnum::IfcControllerTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcControllerTypeEnum::IfcControllerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3394,12 +3496,14 @@ Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(IfcEntityInst } Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConveyorSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcConveyorSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3433,12 +3537,14 @@ Ifc4x3_rc1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3470,12 +3576,14 @@ Ifc4x3_rc1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3508,12 +3616,14 @@ Ifc4x3_rc1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCostItemTypeEnum::IfcCostItemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3543,12 +3653,14 @@ Ifc4x3_rc1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3585,12 +3697,14 @@ Ifc4x3_rc1::IfcCourseTypeEnum::IfcCourseTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcCourseTypeEnum::IfcCourseTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCourseTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCourseTypeEnum::IfcCourseTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCourseTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3626,12 +3740,14 @@ Ifc4x3_rc1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3672,12 +3788,14 @@ Ifc4x3_rc1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3709,12 +3827,14 @@ Ifc4x3_rc1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3744,12 +3864,14 @@ Ifc4x3_rc1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(IfcEntityInstan } Ifc4x3_rc1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3781,12 +3903,14 @@ Ifc4x3_rc1::IfcDamperTypeEnum::IfcDamperTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcDamperTypeEnum::IfcDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3827,12 +3951,14 @@ Ifc4x3_rc1::IfcDataOriginEnum::IfcDataOriginEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcDataOriginEnum::IfcDataOriginEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDataOriginEnum::IfcDataOriginEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3865,12 +3991,14 @@ Ifc4x3_rc1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3951,12 +4079,14 @@ Ifc4x3_rc1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3986,12 +4116,14 @@ Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(IfcEntity } Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4038,12 +4170,14 @@ Ifc4x3_rc1::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(IfcEntity } Ifc4x3_rc1::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4078,12 +4212,14 @@ Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElement } Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4121,12 +4257,14 @@ Ifc4x3_rc1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(IfcEntityIn } Ifc4x3_rc1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4161,12 +4299,14 @@ Ifc4x3_rc1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(IfcEntityInstan } Ifc4x3_rc1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDistributionSystemEnum::IfcDistributionSystemEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4241,12 +4381,14 @@ Ifc4x3_rc1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(IfcEn } Ifc4x3_rc1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4280,12 +4422,14 @@ Ifc4x3_rc1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4318,12 +4462,14 @@ Ifc4x3_rc1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(IfcEntityInstan } Ifc4x3_rc1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4360,12 +4506,14 @@ Ifc4x3_rc1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(IfcEntityInstance } Ifc4x3_rc1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4397,12 +4545,14 @@ Ifc4x3_rc1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(IfcEntity } Ifc4x3_rc1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4439,12 +4589,14 @@ Ifc4x3_rc1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(IfcEntityInstan } Ifc4x3_rc1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4490,12 +4642,14 @@ Ifc4x3_rc1::IfcDoorTypeEnum::IfcDoorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcDoorTypeEnum::IfcDoorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDoorTypeEnum::IfcDoorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4530,12 +4684,14 @@ Ifc4x3_rc1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(IfcEntityInstance } Ifc4x3_rc1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4583,12 +4739,14 @@ Ifc4x3_rc1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4625,12 +4783,14 @@ Ifc4x3_rc1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4662,12 +4822,14 @@ Ifc4x3_rc1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4700,12 +4862,14 @@ Ifc4x3_rc1::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEarthworksCutTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEarthworksCutTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4744,12 +4908,14 @@ Ifc4x3_rc1::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEarthworksFillTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEarthworksFillTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4786,12 +4952,14 @@ Ifc4x3_rc1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(IfcEntity } Ifc4x3_rc1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4837,12 +5005,14 @@ Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTy } Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4876,12 +5046,14 @@ Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTy } Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4920,12 +5092,14 @@ Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDevi } Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricFlowTreatmentDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricFlowTreatmentDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4956,12 +5130,14 @@ Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(IfcEntity } Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4994,12 +5170,14 @@ Ifc4x3_rc1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5034,12 +5212,14 @@ Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(IfcEn } Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5072,12 +5252,14 @@ Ifc4x3_rc1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(IfcEntityInst } Ifc4x3_rc1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5135,12 +5317,14 @@ Ifc4x3_rc1::IfcElementCompositionEnum::IfcElementCompositionEnum(IfcEntityInstan } Ifc4x3_rc1::IfcElementCompositionEnum::IfcElementCompositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5171,12 +5355,14 @@ Ifc4x3_rc1::IfcEngineTypeEnum::IfcEngineTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcEngineTypeEnum::IfcEngineTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcEngineTypeEnum::IfcEngineTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5208,12 +5394,14 @@ Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(IfcEntity } Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5252,12 +5440,14 @@ Ifc4x3_rc1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5293,12 +5483,14 @@ Ifc4x3_rc1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5332,12 +5524,14 @@ Ifc4x3_rc1::IfcEventTypeEnum::IfcEventTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcEventTypeEnum::IfcEventTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcEventTypeEnum::IfcEventTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5370,12 +5564,14 @@ Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum } Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5409,12 +5605,14 @@ Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(IfcEnti } Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFacilityPartCommonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFacilityPartCommonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5452,12 +5650,14 @@ Ifc4x3_rc1::IfcFacilityUsageEnum::IfcFacilityUsageEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcFacilityUsageEnum::IfcFacilityUsageEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFacilityUsageEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFacilityUsageEnum::IfcFacilityUsageEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFacilityUsageEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5491,12 +5691,14 @@ Ifc4x3_rc1::IfcFanTypeEnum::IfcFanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcFanTypeEnum::IfcFanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFanTypeEnum::IfcFanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5533,12 +5735,14 @@ Ifc4x3_rc1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFastenerTypeEnum::IfcFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5571,12 +5775,14 @@ Ifc4x3_rc1::IfcFilterTypeEnum::IfcFilterTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcFilterTypeEnum::IfcFilterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5612,12 +5818,14 @@ Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEn } Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5652,12 +5860,14 @@ Ifc4x3_rc1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5689,12 +5899,14 @@ Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5734,12 +5946,14 @@ Ifc4x3_rc1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5773,12 +5987,14 @@ Ifc4x3_rc1::IfcFootingTypeEnum::IfcFootingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcFootingTypeEnum::IfcFootingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5813,12 +6029,14 @@ Ifc4x3_rc1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5856,12 +6074,14 @@ Ifc4x3_rc1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(IfcEntity } Ifc4x3_rc1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5893,12 +6113,14 @@ Ifc4x3_rc1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(IfcEntityInst } Ifc4x3_rc1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5935,12 +6157,14 @@ Ifc4x3_rc1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5970,12 +6194,14 @@ Ifc4x3_rc1::IfcGridTypeEnum::IfcGridTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcGridTypeEnum::IfcGridTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcGridTypeEnum::IfcGridTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6009,12 +6235,14 @@ Ifc4x3_rc1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6047,12 +6275,14 @@ Ifc4x3_rc1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6095,12 +6325,14 @@ Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum } Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcImpactProtectionDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcImpactProtectionDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6134,12 +6366,14 @@ Ifc4x3_rc1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6173,12 +6407,14 @@ Ifc4x3_rc1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(IfcEntityInstan } Ifc4x3_rc1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6212,12 +6448,14 @@ Ifc4x3_rc1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6250,12 +6488,14 @@ Ifc4x3_rc1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6287,12 +6527,14 @@ Ifc4x3_rc1::IfcKnotType::IfcKnotType(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcKnotType::IfcKnotType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcKnotType::IfcKnotType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6324,12 +6566,14 @@ Ifc4x3_rc1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6378,12 +6622,14 @@ Ifc4x3_rc1::IfcLampTypeEnum::IfcLampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcLampTypeEnum::IfcLampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLampTypeEnum::IfcLampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6422,12 +6668,14 @@ Ifc4x3_rc1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(IfcEntityInstance } Ifc4x3_rc1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6458,12 +6706,14 @@ Ifc4x3_rc1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(IfcEnti } Ifc4x3_rc1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6495,12 +6745,14 @@ Ifc4x3_rc1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(IfcEntityInst } Ifc4x3_rc1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6539,12 +6791,14 @@ Ifc4x3_rc1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6577,12 +6831,14 @@ Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLiquidTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLiquidTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6614,12 +6870,14 @@ Ifc4x3_rc1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6652,12 +6910,14 @@ Ifc4x3_rc1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6690,12 +6950,14 @@ Ifc4x3_rc1::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMarineFacilityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMarineFacilityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6744,12 +7006,14 @@ Ifc4x3_rc1::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMarinePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMarinePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6803,12 +7067,14 @@ Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(IfcEnti } Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6853,12 +7119,14 @@ Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6893,12 +7161,14 @@ Ifc4x3_rc1::IfcMemberTypeEnum::IfcMemberTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcMemberTypeEnum::IfcMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6947,12 +7217,14 @@ Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunica } Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMobileTelecommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMobileTelecommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6989,12 +7261,14 @@ Ifc4x3_rc1::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMooringDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMooringDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7029,12 +7303,14 @@ Ifc4x3_rc1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(IfcEntityInst } Ifc4x3_rc1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7067,12 +7343,14 @@ Ifc4x3_rc1::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(IfcEntity } Ifc4x3_rc1::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcNavigationElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcNavigationElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7104,12 +7382,14 @@ Ifc4x3_rc1::IfcNullStyle::IfcNullStyle(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcNullStyle::IfcNullStyle(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcNullStyle::IfcNullStyle(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7138,12 +7418,14 @@ Ifc4x3_rc1::IfcObjectTypeEnum::IfcObjectTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcObjectTypeEnum::IfcObjectTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7179,12 +7461,14 @@ Ifc4x3_rc1::IfcObjectiveEnum::IfcObjectiveEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcObjectiveEnum::IfcObjectiveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcObjectiveEnum::IfcObjectiveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7225,12 +7509,14 @@ Ifc4x3_rc1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7267,12 +7553,14 @@ Ifc4x3_rc1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7304,12 +7592,14 @@ Ifc4x3_rc1::IfcOutletTypeEnum::IfcOutletTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcOutletTypeEnum::IfcOutletTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7344,12 +7634,14 @@ Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(IfcEnti } Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7379,12 +7671,14 @@ Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum } Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7417,12 +7711,14 @@ Ifc4x3_rc1::IfcPermitTypeEnum::IfcPermitTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcPermitTypeEnum::IfcPermitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPermitTypeEnum::IfcPermitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7455,12 +7751,14 @@ Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(IfcEntityInstance } Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7491,12 +7789,14 @@ Ifc4x3_rc1::IfcPileConstructionEnum::IfcPileConstructionEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcPileConstructionEnum::IfcPileConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7530,12 +7830,14 @@ Ifc4x3_rc1::IfcPileTypeEnum::IfcPileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcPileTypeEnum::IfcPileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPileTypeEnum::IfcPileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7571,12 +7873,14 @@ Ifc4x3_rc1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7613,12 +7917,14 @@ Ifc4x3_rc1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7653,12 +7959,14 @@ Ifc4x3_rc1::IfcPlateTypeEnum::IfcPlateTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcPlateTypeEnum::IfcPlateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7697,12 +8005,14 @@ Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepr } Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7733,12 +8043,14 @@ Ifc4x3_rc1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7775,12 +8087,14 @@ Ifc4x3_rc1::IfcProfileTypeEnum::IfcProfileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcProfileTypeEnum::IfcProfileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7810,12 +8124,14 @@ Ifc4x3_rc1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7850,12 +8166,14 @@ Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(IfcEntity } Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7885,12 +8203,14 @@ Ifc4x3_rc1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(IfcEntity } Ifc4x3_rc1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7922,12 +8242,14 @@ Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(IfcEn } Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7963,12 +8285,14 @@ Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTripping } Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8002,12 +8326,14 @@ Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(IfcEntityIn } Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8047,12 +8373,14 @@ Ifc4x3_rc1::IfcPumpTypeEnum::IfcPumpTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcPumpTypeEnum::IfcPumpTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8089,12 +8417,14 @@ Ifc4x3_rc1::IfcRailTypeEnum::IfcRailTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcRailTypeEnum::IfcRailTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRailTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRailTypeEnum::IfcRailTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRailTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8130,12 +8460,14 @@ Ifc4x3_rc1::IfcRailingTypeEnum::IfcRailingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcRailingTypeEnum::IfcRailingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8169,12 +8501,14 @@ Ifc4x3_rc1::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRailwayPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRailwayPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8212,12 +8546,14 @@ Ifc4x3_rc1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8249,12 +8585,14 @@ Ifc4x3_rc1::IfcRampTypeEnum::IfcRampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcRampTypeEnum::IfcRampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRampTypeEnum::IfcRampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8290,12 +8628,14 @@ Ifc4x3_rc1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8331,12 +8671,14 @@ Ifc4x3_rc1::IfcReferentTypeEnum::IfcReferentTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcReferentTypeEnum::IfcReferentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcReferentTypeEnum::IfcReferentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8370,12 +8712,14 @@ Ifc4x3_rc1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(IfcEntityInstance } Ifc4x3_rc1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8413,12 +8757,14 @@ Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcedSoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcedSoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8454,12 +8800,14 @@ Ifc4x3_rc1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(IfcEntityInstan } Ifc4x3_rc1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8497,12 +8845,14 @@ Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(IfcEntity } Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8532,12 +8882,14 @@ Ifc4x3_rc1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8576,12 +8928,14 @@ Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(IfcEntityInst } Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8611,12 +8965,14 @@ Ifc4x3_rc1::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRoadPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRoadPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8670,12 +9026,14 @@ Ifc4x3_rc1::IfcRoleEnum::IfcRoleEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcRoleEnum::IfcRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRoleEnum::IfcRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8726,12 +9084,14 @@ Ifc4x3_rc1::IfcRoofTypeEnum::IfcRoofTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcRoofTypeEnum::IfcRoofTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8774,12 +9134,14 @@ Ifc4x3_rc1::IfcSIPrefix::IfcSIPrefix(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSIPrefix::IfcSIPrefix(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSIPrefix::IfcSIPrefix(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8823,12 +9185,14 @@ Ifc4x3_rc1::IfcSIUnitName::IfcSIUnitName(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSIUnitName::IfcSIUnitName(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSIUnitName::IfcSIUnitName(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8886,12 +9250,14 @@ Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(IfcEntityIn } Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8931,12 +9297,14 @@ Ifc4x3_rc1::IfcSectionTypeEnum::IfcSectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSectionTypeEnum::IfcSectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8966,12 +9334,14 @@ Ifc4x3_rc1::IfcSensorTypeEnum::IfcSensorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSensorTypeEnum::IfcSensorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9033,12 +9403,14 @@ Ifc4x3_rc1::IfcSequenceEnum::IfcSequenceEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSequenceEnum::IfcSequenceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSequenceEnum::IfcSequenceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9072,12 +9444,14 @@ Ifc4x3_rc1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9110,12 +9484,14 @@ Ifc4x3_rc1::IfcSignTypeEnum::IfcSignTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSignTypeEnum::IfcSignTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSignTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSignTypeEnum::IfcSignTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSignTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9148,12 +9524,14 @@ Ifc4x3_rc1::IfcSignalTypeEnum::IfcSignalTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSignalTypeEnum::IfcSignalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSignalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSignalTypeEnum::IfcSignalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSignalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9186,12 +9564,14 @@ Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum } Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9231,12 +9611,14 @@ Ifc4x3_rc1::IfcSlabTypeEnum::IfcSlabTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSlabTypeEnum::IfcSlabTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9275,12 +9657,14 @@ Ifc4x3_rc1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9312,12 +9696,14 @@ Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9349,12 +9735,14 @@ Ifc4x3_rc1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9389,12 +9777,14 @@ Ifc4x3_rc1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9433,12 +9823,14 @@ Ifc4x3_rc1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9471,12 +9863,14 @@ Ifc4x3_rc1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9511,12 +9905,14 @@ Ifc4x3_rc1::IfcStairTypeEnum::IfcStairTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcStairTypeEnum::IfcStairTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcStairTypeEnum::IfcStairTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9561,12 +9957,14 @@ Ifc4x3_rc1::IfcStateEnum::IfcStateEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcStateEnum::IfcStateEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcStateEnum::IfcStateEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9599,12 +9997,14 @@ Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEn } Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9641,12 +10041,14 @@ Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(I } Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9681,12 +10083,14 @@ Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTy } Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9720,12 +10124,14 @@ Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEn } Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9758,12 +10164,14 @@ Ifc4x3_rc1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(IfcEn } Ifc4x3_rc1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9795,12 +10203,14 @@ Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9841,12 +10251,14 @@ Ifc4x3_rc1::IfcSurfaceSide::IfcSurfaceSide(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcSurfaceSide::IfcSurfaceSide(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSurfaceSide::IfcSurfaceSide(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9877,12 +10289,14 @@ Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(IfcEntityInst } Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9923,12 +10337,14 @@ Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum } Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9961,12 +10377,14 @@ Ifc4x3_rc1::IfcTankTypeEnum::IfcTankTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcTankTypeEnum::IfcTankTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTankTypeEnum::IfcTankTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10004,12 +10422,14 @@ Ifc4x3_rc1::IfcTaskDurationEnum::IfcTaskDurationEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcTaskDurationEnum::IfcTaskDurationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTaskDurationEnum::IfcTaskDurationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10040,12 +10460,14 @@ Ifc4x3_rc1::IfcTaskTypeEnum::IfcTaskTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcTaskTypeEnum::IfcTaskTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTaskTypeEnum::IfcTaskTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10087,12 +10509,14 @@ Ifc4x3_rc1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10125,12 +10549,14 @@ Ifc4x3_rc1::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTendonConduitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTendonConduitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10165,12 +10591,14 @@ Ifc4x3_rc1::IfcTendonTypeEnum::IfcTendonTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcTendonTypeEnum::IfcTendonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10204,12 +10632,14 @@ Ifc4x3_rc1::IfcTextPath::IfcTextPath(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcTextPath::IfcTextPath(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTextPath::IfcTextPath(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10241,12 +10671,14 @@ Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10281,12 +10713,14 @@ Ifc4x3_rc1::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTrackElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTrackElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10324,12 +10758,14 @@ Ifc4x3_rc1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(IfcEntityInstanceData } Ifc4x3_rc1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10366,12 +10802,14 @@ Ifc4x3_rc1::IfcTransitionCode::IfcTransitionCode(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcTransitionCode::IfcTransitionCode(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTransitionCode::IfcTransitionCode(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10403,12 +10841,14 @@ Ifc4x3_rc1::IfcTransitionCurveType::IfcTransitionCurveType(IfcEntityInstanceData } Ifc4x3_rc1::IfcTransitionCurveType::IfcTransitionCurveType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransitionCurveType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTransitionCurveType::IfcTransitionCurveType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransitionCurveType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10442,12 +10882,14 @@ Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(I } Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransportElementFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransportElementFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10482,12 +10924,14 @@ Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedType } Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransportElementNonFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTransportElementNonFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10524,12 +10968,14 @@ Ifc4x3_rc1::IfcTrimmingPreference::IfcTrimmingPreference(IfcEntityInstanceData* } Ifc4x3_rc1::IfcTrimmingPreference::IfcTrimmingPreference(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTrimmingPreference::IfcTrimmingPreference(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10560,12 +11006,14 @@ Ifc4x3_rc1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10596,12 +11044,14 @@ Ifc4x3_rc1::IfcUnitEnum::IfcUnitEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcUnitEnum::IfcUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcUnitEnum::IfcUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10659,12 +11109,14 @@ Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(I } Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10703,12 +11155,14 @@ Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(IfcEntityIn } Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10743,12 +11197,14 @@ Ifc4x3_rc1::IfcValveTypeEnum::IfcValveTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcValveTypeEnum::IfcValveTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcValveTypeEnum::IfcValveTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10799,12 +11255,14 @@ Ifc4x3_rc1::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(IfcEntityInst } Ifc4x3_rc1::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcVibrationDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcVibrationDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10840,12 +11298,14 @@ Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(IfcEntity } Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10878,12 +11338,14 @@ Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(IfcEntityInstan } Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10919,12 +11381,14 @@ Ifc4x3_rc1::IfcWallTypeEnum::IfcWallTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcWallTypeEnum::IfcWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWallTypeEnum::IfcWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10965,12 +11429,14 @@ Ifc4x3_rc1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(IfcEntityInstance } Ifc4x3_rc1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11007,12 +11473,14 @@ Ifc4x3_rc1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(IfcEntityIn } Ifc4x3_rc1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11054,12 +11522,14 @@ Ifc4x3_rc1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(IfcEntityInst } Ifc4x3_rc1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11093,12 +11563,14 @@ Ifc4x3_rc1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(IfcEn } Ifc4x3_rc1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11134,12 +11606,14 @@ Ifc4x3_rc1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(IfcEntityIn } Ifc4x3_rc1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11178,12 +11652,14 @@ Ifc4x3_rc1::IfcWindowTypeEnum::IfcWindowTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcWindowTypeEnum::IfcWindowTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWindowTypeEnum::IfcWindowTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11216,12 +11692,14 @@ Ifc4x3_rc1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(IfcEnti } Ifc4x3_rc1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11260,12 +11738,14 @@ Ifc4x3_rc1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11298,12 +11778,14 @@ Ifc4x3_rc1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11336,12 +11818,14 @@ Ifc4x3_rc1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc1::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); diff --git a/src/ifcparse/Ifc4x3_rc2.cpp b/src/ifcparse/Ifc4x3_rc2.cpp index 2c268fc050..241038078d 100644 --- a/src/ifcparse/Ifc4x3_rc2.cpp +++ b/src/ifcparse/Ifc4x3_rc2.cpp @@ -1307,12 +1307,14 @@ Ifc4x3_rc2::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1347,12 +1349,14 @@ Ifc4x3_rc2::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1407,12 +1411,14 @@ Ifc4x3_rc2::IfcActionTypeEnum::IfcActionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcActionTypeEnum::IfcActionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcActionTypeEnum::IfcActionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1445,12 +1451,14 @@ Ifc4x3_rc2::IfcActuatorTypeEnum::IfcActuatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcActuatorTypeEnum::IfcActuatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1485,12 +1493,14 @@ Ifc4x3_rc2::IfcAddressTypeEnum::IfcAddressTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcAddressTypeEnum::IfcAddressTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1523,12 +1533,14 @@ Ifc4x3_rc2::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1561,12 +1573,14 @@ Ifc4x3_rc2::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1600,12 +1614,14 @@ Ifc4x3_rc2::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Ifc } Ifc4x3_rc2::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1644,12 +1660,14 @@ Ifc4x3_rc2::IfcAlarmTypeEnum::IfcAlarmTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcAlarmTypeEnum::IfcAlarmTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1687,12 +1705,14 @@ Ifc4x3_rc2::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentTypeEnum(Ifc } Ifc4x3_rc2::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlignmentCantSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlignmentCantSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1727,12 +1747,14 @@ Ifc4x3_rc2::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegment } Ifc4x3_rc2::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlignmentHorizontalSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlignmentHorizontalSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1769,12 +1791,14 @@ Ifc4x3_rc2::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1804,12 +1828,14 @@ Ifc4x3_rc2::IfcAlignmentVerticalSegmentTypeEnum::IfcAlignmentVerticalSegmentType } Ifc4x3_rc2::IfcAlignmentVerticalSegmentTypeEnum::IfcAlignmentVerticalSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlignmentVerticalSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAlignmentVerticalSegmentTypeEnum::IfcAlignmentVerticalSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAlignmentVerticalSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1841,12 +1867,14 @@ Ifc4x3_rc2::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1879,12 +1907,14 @@ Ifc4x3_rc2::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1918,12 +1948,14 @@ Ifc4x3_rc2::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAnnotationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAnnotationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1962,12 +1994,14 @@ Ifc4x3_rc2::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(IfcEntityInstan } Ifc4x3_rc2::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1999,12 +2033,14 @@ Ifc4x3_rc2::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2035,12 +2071,14 @@ Ifc4x3_rc2::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Ifc } Ifc4x3_rc2::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2082,12 +2120,14 @@ Ifc4x3_rc2::IfcBSplineCurveForm::IfcBSplineCurveForm(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcBSplineCurveForm::IfcBSplineCurveForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2121,12 +2161,14 @@ Ifc4x3_rc2::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(IfcEntityInstanceData* } Ifc4x3_rc2::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2165,12 +2207,14 @@ Ifc4x3_rc2::IfcBeamTypeEnum::IfcBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcBeamTypeEnum::IfcBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2212,12 +2256,14 @@ Ifc4x3_rc2::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(IfcEn } Ifc4x3_rc2::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBearingTypeDisplacementEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBearingTypeDisplacementEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2250,12 +2296,14 @@ Ifc4x3_rc2::IfcBearingTypeEnum::IfcBearingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcBearingTypeEnum::IfcBearingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBearingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBearingTypeEnum::IfcBearingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBearingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2293,12 +2341,14 @@ Ifc4x3_rc2::IfcBenchmarkEnum::IfcBenchmarkEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcBenchmarkEnum::IfcBenchmarkEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2336,12 +2386,14 @@ Ifc4x3_rc2::IfcBoilerTypeEnum::IfcBoilerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcBoilerTypeEnum::IfcBoilerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2373,12 +2425,14 @@ Ifc4x3_rc2::IfcBooleanOperator::IfcBooleanOperator(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcBooleanOperator::IfcBooleanOperator(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBooleanOperator::IfcBooleanOperator(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2409,12 +2463,14 @@ Ifc4x3_rc2::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBridgePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBridgePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2454,12 +2510,14 @@ Ifc4x3_rc2::IfcBridgeTypeEnum::IfcBridgeTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcBridgeTypeEnum::IfcBridgeTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBridgeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBridgeTypeEnum::IfcBridgeTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBridgeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2497,12 +2555,14 @@ Ifc4x3_rc2::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(IfcEn } Ifc4x3_rc2::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2537,12 +2597,14 @@ Ifc4x3_rc2::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Ifc } Ifc4x3_rc2::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2577,12 +2639,14 @@ Ifc4x3_rc2::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2621,12 +2685,14 @@ Ifc4x3_rc2::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBuiltSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBuiltSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2668,12 +2734,14 @@ Ifc4x3_rc2::IfcBurnerTypeEnum::IfcBurnerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcBurnerTypeEnum::IfcBurnerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcBurnerTypeEnum::IfcBurnerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2703,12 +2771,14 @@ Ifc4x3_rc2::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(IfcEn } Ifc4x3_rc2::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2742,12 +2812,14 @@ Ifc4x3_rc2::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(IfcEn } Ifc4x3_rc2::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2784,12 +2856,14 @@ Ifc4x3_rc2::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2825,12 +2899,14 @@ Ifc4x3_rc2::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2870,12 +2946,14 @@ Ifc4x3_rc2::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(IfcEntity } Ifc4x3_rc2::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCaissonFoundationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCaissonFoundationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2907,12 +2985,14 @@ Ifc4x3_rc2::IfcChangeActionEnum::IfcChangeActionEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcChangeActionEnum::IfcChangeActionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcChangeActionEnum::IfcChangeActionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2945,12 +3025,14 @@ Ifc4x3_rc2::IfcChillerTypeEnum::IfcChillerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcChillerTypeEnum::IfcChillerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2983,12 +3065,14 @@ Ifc4x3_rc2::IfcChimneyTypeEnum::IfcChimneyTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcChimneyTypeEnum::IfcChimneyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcChimneyTypeEnum::IfcChimneyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3018,12 +3102,14 @@ Ifc4x3_rc2::IfcCoilTypeEnum::IfcCoilTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcCoilTypeEnum::IfcCoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3060,12 +3146,14 @@ Ifc4x3_rc2::IfcColumnTypeEnum::IfcColumnTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcColumnTypeEnum::IfcColumnTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3100,12 +3188,14 @@ Ifc4x3_rc2::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEn } Ifc4x3_rc2::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3156,12 +3246,14 @@ Ifc4x3_rc2::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEn } Ifc4x3_rc2::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3191,12 +3283,14 @@ Ifc4x3_rc2::IfcCompressorTypeEnum::IfcCompressorTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcCompressorTypeEnum::IfcCompressorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3241,12 +3335,14 @@ Ifc4x3_rc2::IfcCondenserTypeEnum::IfcCondenserTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcCondenserTypeEnum::IfcCondenserTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3283,12 +3379,14 @@ Ifc4x3_rc2::IfcConnectionTypeEnum::IfcConnectionTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcConnectionTypeEnum::IfcConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3320,12 +3418,14 @@ Ifc4x3_rc2::IfcConstraintEnum::IfcConstraintEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcConstraintEnum::IfcConstraintEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcConstraintEnum::IfcConstraintEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3358,12 +3458,14 @@ Ifc4x3_rc2::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentRe } Ifc4x3_rc2::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3401,12 +3503,14 @@ Ifc4x3_rc2::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialReso } Ifc4x3_rc2::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3445,12 +3549,14 @@ Ifc4x3_rc2::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResour } Ifc4x3_rc2::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3482,12 +3588,14 @@ Ifc4x3_rc2::IfcControllerTypeEnum::IfcControllerTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcControllerTypeEnum::IfcControllerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3522,12 +3630,14 @@ Ifc4x3_rc2::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(IfcEntityInst } Ifc4x3_rc2::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConveyorSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcConveyorSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3561,12 +3671,14 @@ Ifc4x3_rc2::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3598,12 +3710,14 @@ Ifc4x3_rc2::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3636,12 +3750,14 @@ Ifc4x3_rc2::IfcCostItemTypeEnum::IfcCostItemTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcCostItemTypeEnum::IfcCostItemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCostItemTypeEnum::IfcCostItemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3671,12 +3787,14 @@ Ifc4x3_rc2::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3713,12 +3831,14 @@ Ifc4x3_rc2::IfcCourseTypeEnum::IfcCourseTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcCourseTypeEnum::IfcCourseTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCourseTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCourseTypeEnum::IfcCourseTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCourseTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3754,12 +3874,14 @@ Ifc4x3_rc2::IfcCoveringTypeEnum::IfcCoveringTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcCoveringTypeEnum::IfcCoveringTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3800,12 +3922,14 @@ Ifc4x3_rc2::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3837,12 +3961,14 @@ Ifc4x3_rc2::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3872,12 +3998,14 @@ Ifc4x3_rc2::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(IfcEntityInstan } Ifc4x3_rc2::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3909,12 +4037,14 @@ Ifc4x3_rc2::IfcDamperTypeEnum::IfcDamperTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcDamperTypeEnum::IfcDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3955,12 +4085,14 @@ Ifc4x3_rc2::IfcDataOriginEnum::IfcDataOriginEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcDataOriginEnum::IfcDataOriginEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDataOriginEnum::IfcDataOriginEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3993,12 +4125,14 @@ Ifc4x3_rc2::IfcDerivedUnitEnum::IfcDerivedUnitEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcDerivedUnitEnum::IfcDerivedUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4079,12 +4213,14 @@ Ifc4x3_rc2::IfcDirectionSenseEnum::IfcDirectionSenseEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcDirectionSenseEnum::IfcDirectionSenseEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4114,12 +4250,14 @@ Ifc4x3_rc2::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(IfcEntity } Ifc4x3_rc2::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4166,12 +4304,14 @@ Ifc4x3_rc2::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(IfcEntity } Ifc4x3_rc2::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4206,12 +4346,14 @@ Ifc4x3_rc2::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElement } Ifc4x3_rc2::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4249,12 +4391,14 @@ Ifc4x3_rc2::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(IfcEntityIn } Ifc4x3_rc2::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4289,12 +4433,14 @@ Ifc4x3_rc2::IfcDistributionSystemEnum::IfcDistributionSystemEnum(IfcEntityInstan } Ifc4x3_rc2::IfcDistributionSystemEnum::IfcDistributionSystemEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDistributionSystemEnum::IfcDistributionSystemEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4369,12 +4515,14 @@ Ifc4x3_rc2::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(IfcEn } Ifc4x3_rc2::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4408,12 +4556,14 @@ Ifc4x3_rc2::IfcDocumentStatusEnum::IfcDocumentStatusEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcDocumentStatusEnum::IfcDocumentStatusEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4446,12 +4596,14 @@ Ifc4x3_rc2::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(IfcEntityInstan } Ifc4x3_rc2::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4488,12 +4640,14 @@ Ifc4x3_rc2::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(IfcEntityInstance } Ifc4x3_rc2::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4525,12 +4679,14 @@ Ifc4x3_rc2::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(IfcEntity } Ifc4x3_rc2::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4567,12 +4723,14 @@ Ifc4x3_rc2::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(IfcEntityInstan } Ifc4x3_rc2::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4618,12 +4776,14 @@ Ifc4x3_rc2::IfcDoorTypeEnum::IfcDoorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcDoorTypeEnum::IfcDoorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDoorTypeEnum::IfcDoorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4658,12 +4818,14 @@ Ifc4x3_rc2::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(IfcEntityInstance } Ifc4x3_rc2::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4711,12 +4873,14 @@ Ifc4x3_rc2::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4753,12 +4917,14 @@ Ifc4x3_rc2::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4790,12 +4956,14 @@ Ifc4x3_rc2::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4828,12 +4996,14 @@ Ifc4x3_rc2::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEarthworksCutTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEarthworksCutTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4872,12 +5042,14 @@ Ifc4x3_rc2::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEarthworksFillTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEarthworksFillTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4914,12 +5086,14 @@ Ifc4x3_rc2::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(IfcEntity } Ifc4x3_rc2::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4965,12 +5139,14 @@ Ifc4x3_rc2::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTy } Ifc4x3_rc2::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5004,12 +5180,14 @@ Ifc4x3_rc2::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTy } Ifc4x3_rc2::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5048,12 +5226,14 @@ Ifc4x3_rc2::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDevi } Ifc4x3_rc2::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricFlowTreatmentDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricFlowTreatmentDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5084,12 +5264,14 @@ Ifc4x3_rc2::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(IfcEntity } Ifc4x3_rc2::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5122,12 +5304,14 @@ Ifc4x3_rc2::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5162,12 +5346,14 @@ Ifc4x3_rc2::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(IfcEn } Ifc4x3_rc2::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5200,12 +5386,14 @@ Ifc4x3_rc2::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(IfcEntityInst } Ifc4x3_rc2::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5263,12 +5451,14 @@ Ifc4x3_rc2::IfcElementCompositionEnum::IfcElementCompositionEnum(IfcEntityInstan } Ifc4x3_rc2::IfcElementCompositionEnum::IfcElementCompositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5299,12 +5489,14 @@ Ifc4x3_rc2::IfcEngineTypeEnum::IfcEngineTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcEngineTypeEnum::IfcEngineTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcEngineTypeEnum::IfcEngineTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5336,12 +5528,14 @@ Ifc4x3_rc2::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(IfcEntity } Ifc4x3_rc2::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5380,12 +5574,14 @@ Ifc4x3_rc2::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5421,12 +5617,14 @@ Ifc4x3_rc2::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5460,12 +5658,14 @@ Ifc4x3_rc2::IfcEventTypeEnum::IfcEventTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcEventTypeEnum::IfcEventTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcEventTypeEnum::IfcEventTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5498,12 +5698,14 @@ Ifc4x3_rc2::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum } Ifc4x3_rc2::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5537,12 +5739,14 @@ Ifc4x3_rc2::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(IfcEnti } Ifc4x3_rc2::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFacilityPartCommonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFacilityPartCommonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5580,12 +5784,14 @@ Ifc4x3_rc2::IfcFacilityUsageEnum::IfcFacilityUsageEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcFacilityUsageEnum::IfcFacilityUsageEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFacilityUsageEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFacilityUsageEnum::IfcFacilityUsageEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFacilityUsageEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5619,12 +5825,14 @@ Ifc4x3_rc2::IfcFanTypeEnum::IfcFanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcFanTypeEnum::IfcFanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFanTypeEnum::IfcFanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5661,12 +5869,14 @@ Ifc4x3_rc2::IfcFastenerTypeEnum::IfcFastenerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcFastenerTypeEnum::IfcFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFastenerTypeEnum::IfcFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5699,12 +5909,14 @@ Ifc4x3_rc2::IfcFilterTypeEnum::IfcFilterTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcFilterTypeEnum::IfcFilterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5740,12 +5952,14 @@ Ifc4x3_rc2::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEn } Ifc4x3_rc2::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5780,12 +5994,14 @@ Ifc4x3_rc2::IfcFlowDirectionEnum::IfcFlowDirectionEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcFlowDirectionEnum::IfcFlowDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5817,12 +6033,14 @@ Ifc4x3_rc2::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5862,12 +6080,14 @@ Ifc4x3_rc2::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5901,12 +6121,14 @@ Ifc4x3_rc2::IfcFootingTypeEnum::IfcFootingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcFootingTypeEnum::IfcFootingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5941,12 +6163,14 @@ Ifc4x3_rc2::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5984,12 +6208,14 @@ Ifc4x3_rc2::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(IfcEntity } Ifc4x3_rc2::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6021,12 +6247,14 @@ Ifc4x3_rc2::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(IfcEntityInst } Ifc4x3_rc2::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6063,12 +6291,14 @@ Ifc4x3_rc2::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6098,12 +6328,14 @@ Ifc4x3_rc2::IfcGridTypeEnum::IfcGridTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcGridTypeEnum::IfcGridTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcGridTypeEnum::IfcGridTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6137,12 +6369,14 @@ Ifc4x3_rc2::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6175,12 +6409,14 @@ Ifc4x3_rc2::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6223,12 +6459,14 @@ Ifc4x3_rc2::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum } Ifc4x3_rc2::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcImpactProtectionDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcImpactProtectionDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6262,12 +6500,14 @@ Ifc4x3_rc2::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6301,12 +6541,14 @@ Ifc4x3_rc2::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(IfcEntityInstan } Ifc4x3_rc2::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6340,12 +6582,14 @@ Ifc4x3_rc2::IfcInventoryTypeEnum::IfcInventoryTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcInventoryTypeEnum::IfcInventoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6378,12 +6622,14 @@ Ifc4x3_rc2::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6415,12 +6661,14 @@ Ifc4x3_rc2::IfcKnotType::IfcKnotType(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcKnotType::IfcKnotType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcKnotType::IfcKnotType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6452,12 +6700,14 @@ Ifc4x3_rc2::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6506,12 +6756,14 @@ Ifc4x3_rc2::IfcLampTypeEnum::IfcLampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcLampTypeEnum::IfcLampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLampTypeEnum::IfcLampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6550,12 +6802,14 @@ Ifc4x3_rc2::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(IfcEntityInstance } Ifc4x3_rc2::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6586,12 +6840,14 @@ Ifc4x3_rc2::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(IfcEnti } Ifc4x3_rc2::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6623,12 +6879,14 @@ Ifc4x3_rc2::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(IfcEntityInst } Ifc4x3_rc2::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6667,12 +6925,14 @@ Ifc4x3_rc2::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6705,12 +6965,14 @@ Ifc4x3_rc2::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLiquidTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLiquidTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6742,12 +7004,14 @@ Ifc4x3_rc2::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6780,12 +7044,14 @@ Ifc4x3_rc2::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6818,12 +7084,14 @@ Ifc4x3_rc2::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMarineFacilityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMarineFacilityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6872,12 +7140,14 @@ Ifc4x3_rc2::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMarinePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMarinePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6931,12 +7201,14 @@ Ifc4x3_rc2::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(IfcEnti } Ifc4x3_rc2::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6981,12 +7253,14 @@ Ifc4x3_rc2::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7021,12 +7295,14 @@ Ifc4x3_rc2::IfcMemberTypeEnum::IfcMemberTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcMemberTypeEnum::IfcMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7075,12 +7351,14 @@ Ifc4x3_rc2::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunica } Ifc4x3_rc2::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMobileTelecommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMobileTelecommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7117,12 +7395,14 @@ Ifc4x3_rc2::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMooringDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMooringDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7157,12 +7437,14 @@ Ifc4x3_rc2::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(IfcEntityInst } Ifc4x3_rc2::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7195,12 +7477,14 @@ Ifc4x3_rc2::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(IfcEntity } Ifc4x3_rc2::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcNavigationElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcNavigationElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7232,12 +7516,14 @@ Ifc4x3_rc2::IfcNullStyle::IfcNullStyle(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcNullStyle::IfcNullStyle(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcNullStyle::IfcNullStyle(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcNullStyle_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7266,12 +7552,14 @@ Ifc4x3_rc2::IfcObjectTypeEnum::IfcObjectTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcObjectTypeEnum::IfcObjectTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7307,12 +7595,14 @@ Ifc4x3_rc2::IfcObjectiveEnum::IfcObjectiveEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcObjectiveEnum::IfcObjectiveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcObjectiveEnum::IfcObjectiveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7353,12 +7643,14 @@ Ifc4x3_rc2::IfcOccupantTypeEnum::IfcOccupantTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcOccupantTypeEnum::IfcOccupantTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7395,12 +7687,14 @@ Ifc4x3_rc2::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7432,12 +7726,14 @@ Ifc4x3_rc2::IfcOutletTypeEnum::IfcOutletTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcOutletTypeEnum::IfcOutletTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7472,12 +7768,14 @@ Ifc4x3_rc2::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(IfcEnti } Ifc4x3_rc2::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7507,12 +7805,14 @@ Ifc4x3_rc2::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum } Ifc4x3_rc2::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7545,12 +7845,14 @@ Ifc4x3_rc2::IfcPermitTypeEnum::IfcPermitTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcPermitTypeEnum::IfcPermitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPermitTypeEnum::IfcPermitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7583,12 +7885,14 @@ Ifc4x3_rc2::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(IfcEntityInstance } Ifc4x3_rc2::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7619,12 +7923,14 @@ Ifc4x3_rc2::IfcPileConstructionEnum::IfcPileConstructionEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcPileConstructionEnum::IfcPileConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7658,12 +7964,14 @@ Ifc4x3_rc2::IfcPileTypeEnum::IfcPileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcPileTypeEnum::IfcPileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPileTypeEnum::IfcPileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7699,12 +8007,14 @@ Ifc4x3_rc2::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7741,12 +8051,14 @@ Ifc4x3_rc2::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7781,12 +8093,14 @@ Ifc4x3_rc2::IfcPlateTypeEnum::IfcPlateTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcPlateTypeEnum::IfcPlateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7825,12 +8139,14 @@ Ifc4x3_rc2::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepr } Ifc4x3_rc2::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7861,12 +8177,14 @@ Ifc4x3_rc2::IfcProcedureTypeEnum::IfcProcedureTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc2::IfcProcedureTypeEnum::IfcProcedureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7903,12 +8221,14 @@ Ifc4x3_rc2::IfcProfileTypeEnum::IfcProfileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcProfileTypeEnum::IfcProfileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7938,12 +8258,14 @@ Ifc4x3_rc2::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7978,12 +8300,14 @@ Ifc4x3_rc2::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(IfcEntity } Ifc4x3_rc2::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8013,12 +8337,14 @@ Ifc4x3_rc2::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(IfcEntity } Ifc4x3_rc2::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8050,12 +8376,14 @@ Ifc4x3_rc2::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(IfcEn } Ifc4x3_rc2::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8091,12 +8419,14 @@ Ifc4x3_rc2::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTripping } Ifc4x3_rc2::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8130,12 +8460,14 @@ Ifc4x3_rc2::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(IfcEntityIn } Ifc4x3_rc2::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8175,12 +8507,14 @@ Ifc4x3_rc2::IfcPumpTypeEnum::IfcPumpTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcPumpTypeEnum::IfcPumpTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8217,12 +8551,14 @@ Ifc4x3_rc2::IfcRailTypeEnum::IfcRailTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcRailTypeEnum::IfcRailTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRailTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRailTypeEnum::IfcRailTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRailTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8258,12 +8594,14 @@ Ifc4x3_rc2::IfcRailingTypeEnum::IfcRailingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcRailingTypeEnum::IfcRailingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8297,12 +8635,14 @@ Ifc4x3_rc2::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRailwayPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRailwayPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8340,12 +8680,14 @@ Ifc4x3_rc2::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8377,12 +8719,14 @@ Ifc4x3_rc2::IfcRampTypeEnum::IfcRampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcRampTypeEnum::IfcRampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRampTypeEnum::IfcRampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8418,12 +8762,14 @@ Ifc4x3_rc2::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8459,12 +8805,14 @@ Ifc4x3_rc2::IfcReferentTypeEnum::IfcReferentTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcReferentTypeEnum::IfcReferentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcReferentTypeEnum::IfcReferentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8498,12 +8846,14 @@ Ifc4x3_rc2::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(IfcEntityInstance } Ifc4x3_rc2::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8541,12 +8891,14 @@ Ifc4x3_rc2::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcedSoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcedSoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8582,12 +8934,14 @@ Ifc4x3_rc2::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(IfcEntityInstan } Ifc4x3_rc2::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8625,12 +8979,14 @@ Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(IfcEntity } Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8660,12 +9016,14 @@ Ifc4x3_rc2::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8704,12 +9062,14 @@ Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(IfcEntityInst } Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8739,12 +9099,14 @@ Ifc4x3_rc2::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRoadPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRoadPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8798,12 +9160,14 @@ Ifc4x3_rc2::IfcRoleEnum::IfcRoleEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcRoleEnum::IfcRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRoleEnum::IfcRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8854,12 +9218,14 @@ Ifc4x3_rc2::IfcRoofTypeEnum::IfcRoofTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcRoofTypeEnum::IfcRoofTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8902,12 +9268,14 @@ Ifc4x3_rc2::IfcSIPrefix::IfcSIPrefix(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSIPrefix::IfcSIPrefix(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSIPrefix::IfcSIPrefix(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8951,12 +9319,14 @@ Ifc4x3_rc2::IfcSIUnitName::IfcSIUnitName(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSIUnitName::IfcSIUnitName(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSIUnitName::IfcSIUnitName(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9014,12 +9384,14 @@ Ifc4x3_rc2::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(IfcEntityIn } Ifc4x3_rc2::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9059,12 +9431,14 @@ Ifc4x3_rc2::IfcSectionTypeEnum::IfcSectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSectionTypeEnum::IfcSectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9094,12 +9468,14 @@ Ifc4x3_rc2::IfcSensorTypeEnum::IfcSensorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSensorTypeEnum::IfcSensorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9161,12 +9537,14 @@ Ifc4x3_rc2::IfcSequenceEnum::IfcSequenceEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSequenceEnum::IfcSequenceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSequenceEnum::IfcSequenceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9200,12 +9578,14 @@ Ifc4x3_rc2::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9238,12 +9618,14 @@ Ifc4x3_rc2::IfcSignTypeEnum::IfcSignTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSignTypeEnum::IfcSignTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSignTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSignTypeEnum::IfcSignTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSignTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9276,12 +9658,14 @@ Ifc4x3_rc2::IfcSignalTypeEnum::IfcSignalTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSignalTypeEnum::IfcSignalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSignalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSignalTypeEnum::IfcSignalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSignalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9314,12 +9698,14 @@ Ifc4x3_rc2::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum } Ifc4x3_rc2::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9359,12 +9745,14 @@ Ifc4x3_rc2::IfcSlabTypeEnum::IfcSlabTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSlabTypeEnum::IfcSlabTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9403,12 +9791,14 @@ Ifc4x3_rc2::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9440,12 +9830,14 @@ Ifc4x3_rc2::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9477,12 +9869,14 @@ Ifc4x3_rc2::IfcSpaceTypeEnum::IfcSpaceTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSpaceTypeEnum::IfcSpaceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9517,12 +9911,14 @@ Ifc4x3_rc2::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9561,12 +9957,14 @@ Ifc4x3_rc2::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9599,12 +9997,14 @@ Ifc4x3_rc2::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9639,12 +10039,14 @@ Ifc4x3_rc2::IfcStairTypeEnum::IfcStairTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcStairTypeEnum::IfcStairTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcStairTypeEnum::IfcStairTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9689,12 +10091,14 @@ Ifc4x3_rc2::IfcStateEnum::IfcStateEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcStateEnum::IfcStateEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcStateEnum::IfcStateEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9727,12 +10131,14 @@ Ifc4x3_rc2::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEn } Ifc4x3_rc2::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9769,12 +10175,14 @@ Ifc4x3_rc2::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(I } Ifc4x3_rc2::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9809,12 +10217,14 @@ Ifc4x3_rc2::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTy } Ifc4x3_rc2::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9848,12 +10258,14 @@ Ifc4x3_rc2::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEn } Ifc4x3_rc2::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9886,12 +10298,14 @@ Ifc4x3_rc2::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(IfcEn } Ifc4x3_rc2::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9923,12 +10337,14 @@ Ifc4x3_rc2::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9969,12 +10385,14 @@ Ifc4x3_rc2::IfcSurfaceSide::IfcSurfaceSide(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcSurfaceSide::IfcSurfaceSide(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSurfaceSide::IfcSurfaceSide(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10005,12 +10423,14 @@ Ifc4x3_rc2::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(IfcEntityInst } Ifc4x3_rc2::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10051,12 +10471,14 @@ Ifc4x3_rc2::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum } Ifc4x3_rc2::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10089,12 +10511,14 @@ Ifc4x3_rc2::IfcTankTypeEnum::IfcTankTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcTankTypeEnum::IfcTankTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTankTypeEnum::IfcTankTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10132,12 +10556,14 @@ Ifc4x3_rc2::IfcTaskDurationEnum::IfcTaskDurationEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcTaskDurationEnum::IfcTaskDurationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTaskDurationEnum::IfcTaskDurationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10168,12 +10594,14 @@ Ifc4x3_rc2::IfcTaskTypeEnum::IfcTaskTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcTaskTypeEnum::IfcTaskTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTaskTypeEnum::IfcTaskTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10215,12 +10643,14 @@ Ifc4x3_rc2::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10253,12 +10683,14 @@ Ifc4x3_rc2::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTendonConduitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTendonConduitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10293,12 +10725,14 @@ Ifc4x3_rc2::IfcTendonTypeEnum::IfcTendonTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcTendonTypeEnum::IfcTendonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10332,12 +10766,14 @@ Ifc4x3_rc2::IfcTextPath::IfcTextPath(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcTextPath::IfcTextPath(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTextPath::IfcTextPath(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10369,12 +10805,14 @@ Ifc4x3_rc2::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10409,12 +10847,14 @@ Ifc4x3_rc2::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTrackElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTrackElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10452,12 +10892,14 @@ Ifc4x3_rc2::IfcTransformerTypeEnum::IfcTransformerTypeEnum(IfcEntityInstanceData } Ifc4x3_rc2::IfcTransformerTypeEnum::IfcTransformerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10494,12 +10936,14 @@ Ifc4x3_rc2::IfcTransitionCode::IfcTransitionCode(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcTransitionCode::IfcTransitionCode(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTransitionCode::IfcTransitionCode(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10531,12 +10975,14 @@ Ifc4x3_rc2::IfcTransitionCurveType::IfcTransitionCurveType(IfcEntityInstanceData } Ifc4x3_rc2::IfcTransitionCurveType::IfcTransitionCurveType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransitionCurveType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTransitionCurveType::IfcTransitionCurveType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransitionCurveType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10570,12 +11016,14 @@ Ifc4x3_rc2::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(I } Ifc4x3_rc2::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransportElementFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransportElementFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10610,12 +11058,14 @@ Ifc4x3_rc2::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedType } Ifc4x3_rc2::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransportElementNonFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTransportElementNonFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10652,12 +11102,14 @@ Ifc4x3_rc2::IfcTrimmingPreference::IfcTrimmingPreference(IfcEntityInstanceData* } Ifc4x3_rc2::IfcTrimmingPreference::IfcTrimmingPreference(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTrimmingPreference::IfcTrimmingPreference(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10688,12 +11140,14 @@ Ifc4x3_rc2::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc2::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10724,12 +11178,14 @@ Ifc4x3_rc2::IfcUnitEnum::IfcUnitEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcUnitEnum::IfcUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcUnitEnum::IfcUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10787,12 +11243,14 @@ Ifc4x3_rc2::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(I } Ifc4x3_rc2::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10831,12 +11289,14 @@ Ifc4x3_rc2::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(IfcEntityIn } Ifc4x3_rc2::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10871,12 +11331,14 @@ Ifc4x3_rc2::IfcValveTypeEnum::IfcValveTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcValveTypeEnum::IfcValveTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcValveTypeEnum::IfcValveTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10927,12 +11389,14 @@ Ifc4x3_rc2::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(IfcEntityInst } Ifc4x3_rc2::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcVibrationDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcVibrationDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10968,12 +11432,14 @@ Ifc4x3_rc2::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(IfcEntity } Ifc4x3_rc2::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11006,12 +11472,14 @@ Ifc4x3_rc2::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(IfcEntityInstan } Ifc4x3_rc2::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11047,12 +11515,14 @@ Ifc4x3_rc2::IfcWallTypeEnum::IfcWallTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcWallTypeEnum::IfcWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWallTypeEnum::IfcWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11093,12 +11563,14 @@ Ifc4x3_rc2::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(IfcEntityInstance } Ifc4x3_rc2::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11135,12 +11607,14 @@ Ifc4x3_rc2::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(IfcEntityIn } Ifc4x3_rc2::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11182,12 +11656,14 @@ Ifc4x3_rc2::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(IfcEntityInst } Ifc4x3_rc2::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11221,12 +11697,14 @@ Ifc4x3_rc2::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(IfcEn } Ifc4x3_rc2::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11262,12 +11740,14 @@ Ifc4x3_rc2::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(IfcEntityIn } Ifc4x3_rc2::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11306,12 +11786,14 @@ Ifc4x3_rc2::IfcWindowTypeEnum::IfcWindowTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcWindowTypeEnum::IfcWindowTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWindowTypeEnum::IfcWindowTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11344,12 +11826,14 @@ Ifc4x3_rc2::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(IfcEnti } Ifc4x3_rc2::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11388,12 +11872,14 @@ Ifc4x3_rc2::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11426,12 +11912,14 @@ Ifc4x3_rc2::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc2::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11464,12 +11952,14 @@ Ifc4x3_rc2::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc2::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc2::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); diff --git a/src/ifcparse/Ifc4x3_rc3-definitions.h b/src/ifcparse/Ifc4x3_rc3-definitions.h index b1179ed84b..1b4bdb1860 100644 --- a/src/ifcparse/Ifc4x3_rc3-definitions.h +++ b/src/ifcparse/Ifc4x3_rc3-definitions.h @@ -1,3 +1,28 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +/******************************************************************************** + * * + * This file has been generated from IFC4x3_RC2.exp. Do not make modifications * + * but instead modify the python script that has been used to generate this. * + * * + ********************************************************************************/ #define SCHEMA_HAS_IfcAbsorbedDoseMeasure #define SCHEMA_HAS_IfcAccelerationMeasure @@ -262,6 +287,7 @@ #define SCHEMA_HAS_IfcOutletTypeEnum #define SCHEMA_HAS_IfcPHMeasure #define SCHEMA_HAS_IfcParameterValue +#define SCHEMA_HAS_IfcPavementTypeEnum #define SCHEMA_HAS_IfcPerformanceHistoryTypeEnum #define SCHEMA_HAS_IfcPermeableCoveringOperationEnum #define SCHEMA_HAS_IfcPermitTypeEnum @@ -507,12 +533,8 @@ #define SCHEMA_IfcAlignmentCantSegment_HAS_StartCantRight #define SCHEMA_IfcAlignmentCantSegment_HAS_EndCantRight #define SCHEMA_IfcAlignmentCantSegment_EndCantRight_IS_OPTIONAL -#define SCHEMA_IfcAlignmentCantSegment_HAS_SmoothingLength -#define SCHEMA_IfcAlignmentCantSegment_SmoothingLength_IS_OPTIONAL #define SCHEMA_IfcAlignmentCantSegment_HAS_PredefinedType #define SCHEMA_HAS_IfcAlignmentHorizontal -#define SCHEMA_IfcAlignmentHorizontal_HAS_StartDistAlong -#define SCHEMA_IfcAlignmentHorizontal_StartDistAlong_IS_OPTIONAL #define SCHEMA_HAS_IfcAlignmentHorizontalSegment #define SCHEMA_IfcAlignmentHorizontalSegment_HAS_StartPoint #define SCHEMA_IfcAlignmentHorizontalSegment_HAS_StartDirection @@ -1231,6 +1253,7 @@ #define SCHEMA_IfcDirectrixCurveSweptAreaSolid_StartParam_IS_OPTIONAL #define SCHEMA_IfcDirectrixCurveSweptAreaSolid_HAS_EndParam #define SCHEMA_IfcDirectrixCurveSweptAreaSolid_EndParam_IS_OPTIONAL +#define SCHEMA_HAS_IfcDirectrixDerivedReferenceSweptAreaSolid #define SCHEMA_HAS_IfcDirectrixDistanceSweptAreaSolid #define SCHEMA_IfcDirectrixDistanceSweptAreaSolid_HAS_Directrix #define SCHEMA_IfcDirectrixDistanceSweptAreaSolid_HAS_StartDistance @@ -2217,10 +2240,10 @@ #define SCHEMA_HAS_IfcPath #define SCHEMA_IfcPath_HAS_EdgeList #define SCHEMA_HAS_IfcPavement -#define SCHEMA_IfcPavement_HAS_Flexible -#define SCHEMA_IfcPavement_Flexible_IS_OPTIONAL +#define SCHEMA_IfcPavement_HAS_PredefinedType +#define SCHEMA_IfcPavement_PredefinedType_IS_OPTIONAL #define SCHEMA_HAS_IfcPavementType -#define SCHEMA_IfcPavementType_HAS_Flexible +#define SCHEMA_IfcPavementType_HAS_PredefinedType #define SCHEMA_HAS_IfcPcurve #define SCHEMA_IfcPcurve_HAS_BasisSurface #define SCHEMA_IfcPcurve_HAS_ReferenceCurve @@ -3711,6 +3734,8 @@ #define SCHEMA_IfcThirdOrderPolynomialSpiral_QuadraticTerm_IS_OPTIONAL #define SCHEMA_IfcThirdOrderPolynomialSpiral_HAS_LinearTerm #define SCHEMA_IfcThirdOrderPolynomialSpiral_LinearTerm_IS_OPTIONAL +#define SCHEMA_IfcThirdOrderPolynomialSpiral_HAS_ConstantTerm +#define SCHEMA_IfcThirdOrderPolynomialSpiral_ConstantTerm_IS_OPTIONAL #define SCHEMA_HAS_IfcTimePeriod #define SCHEMA_IfcTimePeriod_HAS_StartTime #define SCHEMA_IfcTimePeriod_HAS_EndTime diff --git a/src/ifcparse/Ifc4x3_rc3-schema.cpp b/src/ifcparse/Ifc4x3_rc3-schema.cpp index 8d3ca4b855..eac792db0a 100644 --- a/src/ifcparse/Ifc4x3_rc3-schema.cpp +++ b/src/ifcparse/Ifc4x3_rc3-schema.cpp @@ -1,3 +1,28 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +/******************************************************************************** + * * + * This file has been generated from IFC4x3_RC2.exp. Do not make modifications * + * but instead modify the python script that has been used to generate this. * + * * + ********************************************************************************/ #include "../ifcparse/IfcSchema.h" #include "../ifcparse/Ifc4x3_rc3.h" @@ -206,6 +231,7 @@ entity* IFC4X3_RC3_IfcDerivedUnitElement_type = 0; entity* IFC4X3_RC3_IfcDimensionalExponents_type = 0; entity* IFC4X3_RC3_IfcDirection_type = 0; entity* IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type = 0; +entity* IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type = 0; entity* IFC4X3_RC3_IfcDirectrixDistanceSweptAreaSolid_type = 0; entity* IFC4X3_RC3_IfcDiscreteAccessory_type = 0; entity* IFC4X3_RC3_IfcDiscreteAccessoryType_type = 0; @@ -1221,6 +1247,7 @@ enumeration_type* IFC4X3_RC3_IfcObjectiveEnum_type = 0; enumeration_type* IFC4X3_RC3_IfcOccupantTypeEnum_type = 0; enumeration_type* IFC4X3_RC3_IfcOpeningElementTypeEnum_type = 0; enumeration_type* IFC4X3_RC3_IfcOutletTypeEnum_type = 0; +enumeration_type* IFC4X3_RC3_IfcPavementTypeEnum_type = 0; enumeration_type* IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type = 0; enumeration_type* IFC4X3_RC3_IfcPermeableCoveringOperationEnum_type = 0; enumeration_type* IFC4X3_RC3_IfcPermitTypeEnum_type = 0; @@ -1615,965 +1642,967 @@ class IFC4X3_RC3_instance_factory : public IfcParse::instance_factory { case 307: return new ::Ifc4x3_rc3::IfcDirection(data); case 308: return new ::Ifc4x3_rc3::IfcDirectionSenseEnum(data); case 309: return new ::Ifc4x3_rc3::IfcDirectrixCurveSweptAreaSolid(data); - case 310: return new ::Ifc4x3_rc3::IfcDirectrixDistanceSweptAreaSolid(data); - case 311: return new ::Ifc4x3_rc3::IfcDiscreteAccessory(data); - case 312: return new ::Ifc4x3_rc3::IfcDiscreteAccessoryType(data); - case 313: return new ::Ifc4x3_rc3::IfcDiscreteAccessoryTypeEnum(data); - case 314: return new ::Ifc4x3_rc3::IfcDistributionBoard(data); - case 315: return new ::Ifc4x3_rc3::IfcDistributionBoardType(data); - case 316: return new ::Ifc4x3_rc3::IfcDistributionBoardTypeEnum(data); - case 317: return new ::Ifc4x3_rc3::IfcDistributionChamberElement(data); - case 318: return new ::Ifc4x3_rc3::IfcDistributionChamberElementType(data); - case 319: return new ::Ifc4x3_rc3::IfcDistributionChamberElementTypeEnum(data); - case 320: return new ::Ifc4x3_rc3::IfcDistributionCircuit(data); - case 321: return new ::Ifc4x3_rc3::IfcDistributionControlElement(data); - case 322: return new ::Ifc4x3_rc3::IfcDistributionControlElementType(data); - case 323: return new ::Ifc4x3_rc3::IfcDistributionElement(data); - case 324: return new ::Ifc4x3_rc3::IfcDistributionElementType(data); - case 325: return new ::Ifc4x3_rc3::IfcDistributionFlowElement(data); - case 326: return new ::Ifc4x3_rc3::IfcDistributionFlowElementType(data); - case 327: return new ::Ifc4x3_rc3::IfcDistributionPort(data); - case 328: return new ::Ifc4x3_rc3::IfcDistributionPortTypeEnum(data); - case 329: return new ::Ifc4x3_rc3::IfcDistributionSystem(data); - case 330: return new ::Ifc4x3_rc3::IfcDistributionSystemEnum(data); - case 331: return new ::Ifc4x3_rc3::IfcDocumentConfidentialityEnum(data); - case 332: return new ::Ifc4x3_rc3::IfcDocumentInformation(data); - case 333: return new ::Ifc4x3_rc3::IfcDocumentInformationRelationship(data); - case 334: return new ::Ifc4x3_rc3::IfcDocumentReference(data); - case 336: return new ::Ifc4x3_rc3::IfcDocumentStatusEnum(data); - case 337: return new ::Ifc4x3_rc3::IfcDoor(data); - case 338: return new ::Ifc4x3_rc3::IfcDoorLiningProperties(data); - case 339: return new ::Ifc4x3_rc3::IfcDoorPanelOperationEnum(data); - case 340: return new ::Ifc4x3_rc3::IfcDoorPanelPositionEnum(data); - case 341: return new ::Ifc4x3_rc3::IfcDoorPanelProperties(data); - case 342: return new ::Ifc4x3_rc3::IfcDoorStandardCase(data); - case 343: return new ::Ifc4x3_rc3::IfcDoorStyle(data); - case 344: return new ::Ifc4x3_rc3::IfcDoorStyleConstructionEnum(data); - case 345: return new ::Ifc4x3_rc3::IfcDoorStyleOperationEnum(data); - case 346: return new ::Ifc4x3_rc3::IfcDoorType(data); - case 347: return new ::Ifc4x3_rc3::IfcDoorTypeEnum(data); - case 348: return new ::Ifc4x3_rc3::IfcDoorTypeOperationEnum(data); - case 349: return new ::Ifc4x3_rc3::IfcDoseEquivalentMeasure(data); - case 350: return new ::Ifc4x3_rc3::IfcDraughtingPreDefinedColour(data); - case 351: return new ::Ifc4x3_rc3::IfcDraughtingPreDefinedCurveFont(data); - case 352: return new ::Ifc4x3_rc3::IfcDuctFitting(data); - case 353: return new ::Ifc4x3_rc3::IfcDuctFittingType(data); - case 354: return new ::Ifc4x3_rc3::IfcDuctFittingTypeEnum(data); - case 355: return new ::Ifc4x3_rc3::IfcDuctSegment(data); - case 356: return new ::Ifc4x3_rc3::IfcDuctSegmentType(data); - case 357: return new ::Ifc4x3_rc3::IfcDuctSegmentTypeEnum(data); - case 358: return new ::Ifc4x3_rc3::IfcDuctSilencer(data); - case 359: return new ::Ifc4x3_rc3::IfcDuctSilencerType(data); - case 360: return new ::Ifc4x3_rc3::IfcDuctSilencerTypeEnum(data); - case 361: return new ::Ifc4x3_rc3::IfcDuration(data); - case 362: return new ::Ifc4x3_rc3::IfcDynamicViscosityMeasure(data); - case 363: return new ::Ifc4x3_rc3::IfcEarthworksCut(data); - case 364: return new ::Ifc4x3_rc3::IfcEarthworksCutTypeEnum(data); - case 365: return new ::Ifc4x3_rc3::IfcEarthworksElement(data); - case 366: return new ::Ifc4x3_rc3::IfcEarthworksFill(data); - case 367: return new ::Ifc4x3_rc3::IfcEarthworksFillTypeEnum(data); - case 368: return new ::Ifc4x3_rc3::IfcEdge(data); - case 369: return new ::Ifc4x3_rc3::IfcEdgeCurve(data); - case 370: return new ::Ifc4x3_rc3::IfcEdgeLoop(data); - case 371: return new ::Ifc4x3_rc3::IfcElectricAppliance(data); - case 372: return new ::Ifc4x3_rc3::IfcElectricApplianceType(data); - case 373: return new ::Ifc4x3_rc3::IfcElectricApplianceTypeEnum(data); - case 374: return new ::Ifc4x3_rc3::IfcElectricCapacitanceMeasure(data); - case 375: return new ::Ifc4x3_rc3::IfcElectricChargeMeasure(data); - case 376: return new ::Ifc4x3_rc3::IfcElectricConductanceMeasure(data); - case 377: return new ::Ifc4x3_rc3::IfcElectricCurrentMeasure(data); - case 378: return new ::Ifc4x3_rc3::IfcElectricDistributionBoard(data); - case 379: return new ::Ifc4x3_rc3::IfcElectricDistributionBoardType(data); - case 380: return new ::Ifc4x3_rc3::IfcElectricDistributionBoardTypeEnum(data); - case 381: return new ::Ifc4x3_rc3::IfcElectricFlowStorageDevice(data); - case 382: return new ::Ifc4x3_rc3::IfcElectricFlowStorageDeviceType(data); - case 383: return new ::Ifc4x3_rc3::IfcElectricFlowStorageDeviceTypeEnum(data); - case 384: return new ::Ifc4x3_rc3::IfcElectricFlowTreatmentDevice(data); - case 385: return new ::Ifc4x3_rc3::IfcElectricFlowTreatmentDeviceType(data); - case 386: return new ::Ifc4x3_rc3::IfcElectricFlowTreatmentDeviceTypeEnum(data); - case 387: return new ::Ifc4x3_rc3::IfcElectricGenerator(data); - case 388: return new ::Ifc4x3_rc3::IfcElectricGeneratorType(data); - case 389: return new ::Ifc4x3_rc3::IfcElectricGeneratorTypeEnum(data); - case 390: return new ::Ifc4x3_rc3::IfcElectricMotor(data); - case 391: return new ::Ifc4x3_rc3::IfcElectricMotorType(data); - case 392: return new ::Ifc4x3_rc3::IfcElectricMotorTypeEnum(data); - case 393: return new ::Ifc4x3_rc3::IfcElectricResistanceMeasure(data); - case 394: return new ::Ifc4x3_rc3::IfcElectricTimeControl(data); - case 395: return new ::Ifc4x3_rc3::IfcElectricTimeControlType(data); - case 396: return new ::Ifc4x3_rc3::IfcElectricTimeControlTypeEnum(data); - case 397: return new ::Ifc4x3_rc3::IfcElectricVoltageMeasure(data); - case 398: return new ::Ifc4x3_rc3::IfcElement(data); - case 399: return new ::Ifc4x3_rc3::IfcElementarySurface(data); - case 400: return new ::Ifc4x3_rc3::IfcElementAssembly(data); - case 401: return new ::Ifc4x3_rc3::IfcElementAssemblyType(data); - case 402: return new ::Ifc4x3_rc3::IfcElementAssemblyTypeEnum(data); - case 403: return new ::Ifc4x3_rc3::IfcElementComponent(data); - case 404: return new ::Ifc4x3_rc3::IfcElementComponentType(data); - case 405: return new ::Ifc4x3_rc3::IfcElementCompositionEnum(data); - case 406: return new ::Ifc4x3_rc3::IfcElementQuantity(data); - case 407: return new ::Ifc4x3_rc3::IfcElementType(data); - case 408: return new ::Ifc4x3_rc3::IfcEllipse(data); - case 409: return new ::Ifc4x3_rc3::IfcEllipseProfileDef(data); - case 410: return new ::Ifc4x3_rc3::IfcEnergyConversionDevice(data); - case 411: return new ::Ifc4x3_rc3::IfcEnergyConversionDeviceType(data); - case 412: return new ::Ifc4x3_rc3::IfcEnergyMeasure(data); - case 413: return new ::Ifc4x3_rc3::IfcEngine(data); - case 414: return new ::Ifc4x3_rc3::IfcEngineType(data); - case 415: return new ::Ifc4x3_rc3::IfcEngineTypeEnum(data); - case 416: return new ::Ifc4x3_rc3::IfcEvaporativeCooler(data); - case 417: return new ::Ifc4x3_rc3::IfcEvaporativeCoolerType(data); - case 418: return new ::Ifc4x3_rc3::IfcEvaporativeCoolerTypeEnum(data); - case 419: return new ::Ifc4x3_rc3::IfcEvaporator(data); - case 420: return new ::Ifc4x3_rc3::IfcEvaporatorType(data); - case 421: return new ::Ifc4x3_rc3::IfcEvaporatorTypeEnum(data); - case 422: return new ::Ifc4x3_rc3::IfcEvent(data); - case 423: return new ::Ifc4x3_rc3::IfcEventTime(data); - case 424: return new ::Ifc4x3_rc3::IfcEventTriggerTypeEnum(data); - case 425: return new ::Ifc4x3_rc3::IfcEventType(data); - case 426: return new ::Ifc4x3_rc3::IfcEventTypeEnum(data); - case 427: return new ::Ifc4x3_rc3::IfcExtendedProperties(data); - case 428: return new ::Ifc4x3_rc3::IfcExternalInformation(data); - case 429: return new ::Ifc4x3_rc3::IfcExternallyDefinedHatchStyle(data); - case 430: return new ::Ifc4x3_rc3::IfcExternallyDefinedSurfaceStyle(data); - case 431: return new ::Ifc4x3_rc3::IfcExternallyDefinedTextFont(data); - case 432: return new ::Ifc4x3_rc3::IfcExternalReference(data); - case 433: return new ::Ifc4x3_rc3::IfcExternalReferenceRelationship(data); - case 434: return new ::Ifc4x3_rc3::IfcExternalSpatialElement(data); - case 435: return new ::Ifc4x3_rc3::IfcExternalSpatialElementTypeEnum(data); - case 436: return new ::Ifc4x3_rc3::IfcExternalSpatialStructureElement(data); - case 437: return new ::Ifc4x3_rc3::IfcExtrudedAreaSolid(data); - case 438: return new ::Ifc4x3_rc3::IfcExtrudedAreaSolidTapered(data); - case 439: return new ::Ifc4x3_rc3::IfcFace(data); - case 440: return new ::Ifc4x3_rc3::IfcFaceBasedSurfaceModel(data); - case 441: return new ::Ifc4x3_rc3::IfcFaceBound(data); - case 442: return new ::Ifc4x3_rc3::IfcFaceOuterBound(data); - case 443: return new ::Ifc4x3_rc3::IfcFaceSurface(data); - case 444: return new ::Ifc4x3_rc3::IfcFacetedBrep(data); - case 445: return new ::Ifc4x3_rc3::IfcFacetedBrepWithVoids(data); - case 446: return new ::Ifc4x3_rc3::IfcFacility(data); - case 447: return new ::Ifc4x3_rc3::IfcFacilityPart(data); - case 448: return new ::Ifc4x3_rc3::IfcFacilityPartCommonTypeEnum(data); - case 450: return new ::Ifc4x3_rc3::IfcFacilityUsageEnum(data); - case 451: return new ::Ifc4x3_rc3::IfcFailureConnectionCondition(data); - case 452: return new ::Ifc4x3_rc3::IfcFan(data); - case 453: return new ::Ifc4x3_rc3::IfcFanType(data); - case 454: return new ::Ifc4x3_rc3::IfcFanTypeEnum(data); - case 455: return new ::Ifc4x3_rc3::IfcFastener(data); - case 456: return new ::Ifc4x3_rc3::IfcFastenerType(data); - case 457: return new ::Ifc4x3_rc3::IfcFastenerTypeEnum(data); - case 458: return new ::Ifc4x3_rc3::IfcFeatureElement(data); - case 459: return new ::Ifc4x3_rc3::IfcFeatureElementAddition(data); - case 460: return new ::Ifc4x3_rc3::IfcFeatureElementSubtraction(data); - case 461: return new ::Ifc4x3_rc3::IfcFillAreaStyle(data); - case 462: return new ::Ifc4x3_rc3::IfcFillAreaStyleHatching(data); - case 463: return new ::Ifc4x3_rc3::IfcFillAreaStyleTiles(data); - case 465: return new ::Ifc4x3_rc3::IfcFilter(data); - case 466: return new ::Ifc4x3_rc3::IfcFilterType(data); - case 467: return new ::Ifc4x3_rc3::IfcFilterTypeEnum(data); - case 468: return new ::Ifc4x3_rc3::IfcFireSuppressionTerminal(data); - case 469: return new ::Ifc4x3_rc3::IfcFireSuppressionTerminalType(data); - case 470: return new ::Ifc4x3_rc3::IfcFireSuppressionTerminalTypeEnum(data); - case 471: return new ::Ifc4x3_rc3::IfcFixedReferenceSweptAreaSolid(data); - case 472: return new ::Ifc4x3_rc3::IfcFlowController(data); - case 473: return new ::Ifc4x3_rc3::IfcFlowControllerType(data); - case 474: return new ::Ifc4x3_rc3::IfcFlowDirectionEnum(data); - case 475: return new ::Ifc4x3_rc3::IfcFlowFitting(data); - case 476: return new ::Ifc4x3_rc3::IfcFlowFittingType(data); - case 477: return new ::Ifc4x3_rc3::IfcFlowInstrument(data); - case 478: return new ::Ifc4x3_rc3::IfcFlowInstrumentType(data); - case 479: return new ::Ifc4x3_rc3::IfcFlowInstrumentTypeEnum(data); - case 480: return new ::Ifc4x3_rc3::IfcFlowMeter(data); - case 481: return new ::Ifc4x3_rc3::IfcFlowMeterType(data); - case 482: return new ::Ifc4x3_rc3::IfcFlowMeterTypeEnum(data); - case 483: return new ::Ifc4x3_rc3::IfcFlowMovingDevice(data); - case 484: return new ::Ifc4x3_rc3::IfcFlowMovingDeviceType(data); - case 485: return new ::Ifc4x3_rc3::IfcFlowSegment(data); - case 486: return new ::Ifc4x3_rc3::IfcFlowSegmentType(data); - case 487: return new ::Ifc4x3_rc3::IfcFlowStorageDevice(data); - case 488: return new ::Ifc4x3_rc3::IfcFlowStorageDeviceType(data); - case 489: return new ::Ifc4x3_rc3::IfcFlowTerminal(data); - case 490: return new ::Ifc4x3_rc3::IfcFlowTerminalType(data); - case 491: return new ::Ifc4x3_rc3::IfcFlowTreatmentDevice(data); - case 492: return new ::Ifc4x3_rc3::IfcFlowTreatmentDeviceType(data); - case 493: return new ::Ifc4x3_rc3::IfcFontStyle(data); - case 494: return new ::Ifc4x3_rc3::IfcFontVariant(data); - case 495: return new ::Ifc4x3_rc3::IfcFontWeight(data); - case 496: return new ::Ifc4x3_rc3::IfcFooting(data); - case 497: return new ::Ifc4x3_rc3::IfcFootingType(data); - case 498: return new ::Ifc4x3_rc3::IfcFootingTypeEnum(data); - case 499: return new ::Ifc4x3_rc3::IfcForceMeasure(data); - case 500: return new ::Ifc4x3_rc3::IfcFrequencyMeasure(data); - case 501: return new ::Ifc4x3_rc3::IfcFurnishingElement(data); - case 502: return new ::Ifc4x3_rc3::IfcFurnishingElementType(data); - case 503: return new ::Ifc4x3_rc3::IfcFurniture(data); - case 504: return new ::Ifc4x3_rc3::IfcFurnitureType(data); - case 505: return new ::Ifc4x3_rc3::IfcFurnitureTypeEnum(data); - case 506: return new ::Ifc4x3_rc3::IfcGeographicElement(data); - case 507: return new ::Ifc4x3_rc3::IfcGeographicElementType(data); - case 508: return new ::Ifc4x3_rc3::IfcGeographicElementTypeEnum(data); - case 509: return new ::Ifc4x3_rc3::IfcGeometricCurveSet(data); - case 510: return new ::Ifc4x3_rc3::IfcGeometricProjectionEnum(data); - case 511: return new ::Ifc4x3_rc3::IfcGeometricRepresentationContext(data); - case 512: return new ::Ifc4x3_rc3::IfcGeometricRepresentationItem(data); - case 513: return new ::Ifc4x3_rc3::IfcGeometricRepresentationSubContext(data); - case 514: return new ::Ifc4x3_rc3::IfcGeometricSet(data); - case 516: return new ::Ifc4x3_rc3::IfcGeomodel(data); - case 517: return new ::Ifc4x3_rc3::IfcGeoslice(data); - case 518: return new ::Ifc4x3_rc3::IfcGeotechnicalAssembly(data); - case 519: return new ::Ifc4x3_rc3::IfcGeotechnicalElement(data); - case 520: return new ::Ifc4x3_rc3::IfcGeotechnicalStratum(data); - case 521: return new ::Ifc4x3_rc3::IfcGloballyUniqueId(data); - case 522: return new ::Ifc4x3_rc3::IfcGlobalOrLocalEnum(data); - case 523: return new ::Ifc4x3_rc3::IfcGradientCurve(data); - case 524: return new ::Ifc4x3_rc3::IfcGrid(data); - case 525: return new ::Ifc4x3_rc3::IfcGridAxis(data); - case 526: return new ::Ifc4x3_rc3::IfcGridPlacement(data); - case 528: return new ::Ifc4x3_rc3::IfcGridTypeEnum(data); - case 529: return new ::Ifc4x3_rc3::IfcGroup(data); - case 530: return new ::Ifc4x3_rc3::IfcHalfSpaceSolid(data); - case 532: return new ::Ifc4x3_rc3::IfcHeatExchanger(data); - case 533: return new ::Ifc4x3_rc3::IfcHeatExchangerType(data); - case 534: return new ::Ifc4x3_rc3::IfcHeatExchangerTypeEnum(data); - case 535: return new ::Ifc4x3_rc3::IfcHeatFluxDensityMeasure(data); - case 536: return new ::Ifc4x3_rc3::IfcHeatingValueMeasure(data); - case 537: return new ::Ifc4x3_rc3::IfcHumidifier(data); - case 538: return new ::Ifc4x3_rc3::IfcHumidifierType(data); - case 539: return new ::Ifc4x3_rc3::IfcHumidifierTypeEnum(data); - case 540: return new ::Ifc4x3_rc3::IfcIdentifier(data); - case 541: return new ::Ifc4x3_rc3::IfcIlluminanceMeasure(data); - case 542: return new ::Ifc4x3_rc3::IfcImageTexture(data); - case 543: return new ::Ifc4x3_rc3::IfcImpactProtectionDevice(data); - case 544: return new ::Ifc4x3_rc3::IfcImpactProtectionDeviceType(data); - case 545: return new ::Ifc4x3_rc3::IfcImpactProtectionDeviceTypeEnum(data); - case 547: return new ::Ifc4x3_rc3::IfcInclinedReferenceSweptAreaSolid(data); - case 548: return new ::Ifc4x3_rc3::IfcIndexedColourMap(data); - case 549: return new ::Ifc4x3_rc3::IfcIndexedPolyCurve(data); - case 550: return new ::Ifc4x3_rc3::IfcIndexedPolygonalFace(data); - case 551: return new ::Ifc4x3_rc3::IfcIndexedPolygonalFaceWithVoids(data); - case 552: return new ::Ifc4x3_rc3::IfcIndexedTextureMap(data); - case 553: return new ::Ifc4x3_rc3::IfcIndexedTriangleTextureMap(data); - case 554: return new ::Ifc4x3_rc3::IfcInductanceMeasure(data); - case 555: return new ::Ifc4x3_rc3::IfcInteger(data); - case 556: return new ::Ifc4x3_rc3::IfcIntegerCountRateMeasure(data); - case 557: return new ::Ifc4x3_rc3::IfcInterceptor(data); - case 558: return new ::Ifc4x3_rc3::IfcInterceptorType(data); - case 559: return new ::Ifc4x3_rc3::IfcInterceptorTypeEnum(data); - case 561: return new ::Ifc4x3_rc3::IfcInternalOrExternalEnum(data); - case 562: return new ::Ifc4x3_rc3::IfcIntersectionCurve(data); - case 563: return new ::Ifc4x3_rc3::IfcInventory(data); - case 564: return new ::Ifc4x3_rc3::IfcInventoryTypeEnum(data); - case 565: return new ::Ifc4x3_rc3::IfcIonConcentrationMeasure(data); - case 566: return new ::Ifc4x3_rc3::IfcIrregularTimeSeries(data); - case 567: return new ::Ifc4x3_rc3::IfcIrregularTimeSeriesValue(data); - case 568: return new ::Ifc4x3_rc3::IfcIShapeProfileDef(data); - case 569: return new ::Ifc4x3_rc3::IfcIsothermalMoistureCapacityMeasure(data); - case 570: return new ::Ifc4x3_rc3::IfcJunctionBox(data); - case 571: return new ::Ifc4x3_rc3::IfcJunctionBoxType(data); - case 572: return new ::Ifc4x3_rc3::IfcJunctionBoxTypeEnum(data); - case 573: return new ::Ifc4x3_rc3::IfcKerb(data); - case 574: return new ::Ifc4x3_rc3::IfcKerbType(data); - case 575: return new ::Ifc4x3_rc3::IfcKinematicViscosityMeasure(data); - case 576: return new ::Ifc4x3_rc3::IfcKnotType(data); - case 577: return new ::Ifc4x3_rc3::IfcLabel(data); - case 578: return new ::Ifc4x3_rc3::IfcLaborResource(data); - case 579: return new ::Ifc4x3_rc3::IfcLaborResourceType(data); - case 580: return new ::Ifc4x3_rc3::IfcLaborResourceTypeEnum(data); - case 581: return new ::Ifc4x3_rc3::IfcLagTime(data); - case 582: return new ::Ifc4x3_rc3::IfcLamp(data); - case 583: return new ::Ifc4x3_rc3::IfcLampType(data); - case 584: return new ::Ifc4x3_rc3::IfcLampTypeEnum(data); - case 585: return new ::Ifc4x3_rc3::IfcLanguageId(data); - case 587: return new ::Ifc4x3_rc3::IfcLayerSetDirectionEnum(data); - case 588: return new ::Ifc4x3_rc3::IfcLengthMeasure(data); - case 589: return new ::Ifc4x3_rc3::IfcLibraryInformation(data); - case 590: return new ::Ifc4x3_rc3::IfcLibraryReference(data); - case 592: return new ::Ifc4x3_rc3::IfcLightDistributionCurveEnum(data); - case 593: return new ::Ifc4x3_rc3::IfcLightDistributionData(data); - case 595: return new ::Ifc4x3_rc3::IfcLightEmissionSourceEnum(data); - case 596: return new ::Ifc4x3_rc3::IfcLightFixture(data); - case 597: return new ::Ifc4x3_rc3::IfcLightFixtureType(data); - case 598: return new ::Ifc4x3_rc3::IfcLightFixtureTypeEnum(data); - case 599: return new ::Ifc4x3_rc3::IfcLightIntensityDistribution(data); - case 600: return new ::Ifc4x3_rc3::IfcLightSource(data); - case 601: return new ::Ifc4x3_rc3::IfcLightSourceAmbient(data); - case 602: return new ::Ifc4x3_rc3::IfcLightSourceDirectional(data); - case 603: return new ::Ifc4x3_rc3::IfcLightSourceGoniometric(data); - case 604: return new ::Ifc4x3_rc3::IfcLightSourcePositional(data); - case 605: return new ::Ifc4x3_rc3::IfcLightSourceSpot(data); - case 606: return new ::Ifc4x3_rc3::IfcLine(data); - case 607: return new ::Ifc4x3_rc3::IfcLinearElement(data); - case 608: return new ::Ifc4x3_rc3::IfcLinearForceMeasure(data); - case 609: return new ::Ifc4x3_rc3::IfcLinearMomentMeasure(data); - case 610: return new ::Ifc4x3_rc3::IfcLinearPlacement(data); - case 611: return new ::Ifc4x3_rc3::IfcLinearPositioningElement(data); - case 612: return new ::Ifc4x3_rc3::IfcLinearStiffnessMeasure(data); - case 613: return new ::Ifc4x3_rc3::IfcLinearVelocityMeasure(data); - case 614: return new ::Ifc4x3_rc3::IfcLineIndex(data); - case 615: return new ::Ifc4x3_rc3::IfcLiquidTerminal(data); - case 616: return new ::Ifc4x3_rc3::IfcLiquidTerminalType(data); - case 617: return new ::Ifc4x3_rc3::IfcLiquidTerminalTypeEnum(data); - case 618: return new ::Ifc4x3_rc3::IfcLoadGroupTypeEnum(data); - case 619: return new ::Ifc4x3_rc3::IfcLocalPlacement(data); - case 620: return new ::Ifc4x3_rc3::IfcLogical(data); - case 621: return new ::Ifc4x3_rc3::IfcLogicalOperatorEnum(data); - case 622: return new ::Ifc4x3_rc3::IfcLoop(data); - case 623: return new ::Ifc4x3_rc3::IfcLShapeProfileDef(data); - case 624: return new ::Ifc4x3_rc3::IfcLuminousFluxMeasure(data); - case 625: return new ::Ifc4x3_rc3::IfcLuminousIntensityDistributionMeasure(data); - case 626: return new ::Ifc4x3_rc3::IfcLuminousIntensityMeasure(data); - case 627: return new ::Ifc4x3_rc3::IfcMagneticFluxDensityMeasure(data); - case 628: return new ::Ifc4x3_rc3::IfcMagneticFluxMeasure(data); - case 629: return new ::Ifc4x3_rc3::IfcManifoldSolidBrep(data); - case 630: return new ::Ifc4x3_rc3::IfcMapConversion(data); - case 631: return new ::Ifc4x3_rc3::IfcMappedItem(data); - case 632: return new ::Ifc4x3_rc3::IfcMarineFacility(data); - case 633: return new ::Ifc4x3_rc3::IfcMarineFacilityTypeEnum(data); - case 634: return new ::Ifc4x3_rc3::IfcMarinePartTypeEnum(data); - case 635: return new ::Ifc4x3_rc3::IfcMassDensityMeasure(data); - case 636: return new ::Ifc4x3_rc3::IfcMassFlowRateMeasure(data); - case 637: return new ::Ifc4x3_rc3::IfcMassMeasure(data); - case 638: return new ::Ifc4x3_rc3::IfcMassPerLengthMeasure(data); - case 639: return new ::Ifc4x3_rc3::IfcMaterial(data); - case 640: return new ::Ifc4x3_rc3::IfcMaterialClassificationRelationship(data); - case 641: return new ::Ifc4x3_rc3::IfcMaterialConstituent(data); - case 642: return new ::Ifc4x3_rc3::IfcMaterialConstituentSet(data); - case 643: return new ::Ifc4x3_rc3::IfcMaterialDefinition(data); - case 644: return new ::Ifc4x3_rc3::IfcMaterialDefinitionRepresentation(data); - case 645: return new ::Ifc4x3_rc3::IfcMaterialLayer(data); - case 646: return new ::Ifc4x3_rc3::IfcMaterialLayerSet(data); - case 647: return new ::Ifc4x3_rc3::IfcMaterialLayerSetUsage(data); - case 648: return new ::Ifc4x3_rc3::IfcMaterialLayerWithOffsets(data); - case 649: return new ::Ifc4x3_rc3::IfcMaterialList(data); - case 650: return new ::Ifc4x3_rc3::IfcMaterialProfile(data); - case 651: return new ::Ifc4x3_rc3::IfcMaterialProfileSet(data); - case 652: return new ::Ifc4x3_rc3::IfcMaterialProfileSetUsage(data); - case 653: return new ::Ifc4x3_rc3::IfcMaterialProfileSetUsageTapering(data); - case 654: return new ::Ifc4x3_rc3::IfcMaterialProfileWithOffsets(data); - case 655: return new ::Ifc4x3_rc3::IfcMaterialProperties(data); - case 656: return new ::Ifc4x3_rc3::IfcMaterialRelationship(data); - case 658: return new ::Ifc4x3_rc3::IfcMaterialUsageDefinition(data); - case 660: return new ::Ifc4x3_rc3::IfcMeasureWithUnit(data); - case 661: return new ::Ifc4x3_rc3::IfcMechanicalFastener(data); - case 662: return new ::Ifc4x3_rc3::IfcMechanicalFastenerType(data); - case 663: return new ::Ifc4x3_rc3::IfcMechanicalFastenerTypeEnum(data); - case 664: return new ::Ifc4x3_rc3::IfcMedicalDevice(data); - case 665: return new ::Ifc4x3_rc3::IfcMedicalDeviceType(data); - case 666: return new ::Ifc4x3_rc3::IfcMedicalDeviceTypeEnum(data); - case 667: return new ::Ifc4x3_rc3::IfcMember(data); - case 668: return new ::Ifc4x3_rc3::IfcMemberStandardCase(data); - case 669: return new ::Ifc4x3_rc3::IfcMemberType(data); - case 670: return new ::Ifc4x3_rc3::IfcMemberTypeEnum(data); - case 671: return new ::Ifc4x3_rc3::IfcMetric(data); - case 673: return new ::Ifc4x3_rc3::IfcMirroredProfileDef(data); - case 674: return new ::Ifc4x3_rc3::IfcMobileTelecommunicationsAppliance(data); - case 675: return new ::Ifc4x3_rc3::IfcMobileTelecommunicationsApplianceType(data); - case 676: return new ::Ifc4x3_rc3::IfcMobileTelecommunicationsApplianceTypeEnum(data); - case 677: return new ::Ifc4x3_rc3::IfcModulusOfElasticityMeasure(data); - case 678: return new ::Ifc4x3_rc3::IfcModulusOfLinearSubgradeReactionMeasure(data); - case 679: return new ::Ifc4x3_rc3::IfcModulusOfRotationalSubgradeReactionMeasure(data); - case 681: return new ::Ifc4x3_rc3::IfcModulusOfSubgradeReactionMeasure(data); - case 684: return new ::Ifc4x3_rc3::IfcMoistureDiffusivityMeasure(data); - case 685: return new ::Ifc4x3_rc3::IfcMolecularWeightMeasure(data); - case 686: return new ::Ifc4x3_rc3::IfcMomentOfInertiaMeasure(data); - case 687: return new ::Ifc4x3_rc3::IfcMonetaryMeasure(data); - case 688: return new ::Ifc4x3_rc3::IfcMonetaryUnit(data); - case 689: return new ::Ifc4x3_rc3::IfcMonthInYearNumber(data); - case 690: return new ::Ifc4x3_rc3::IfcMooringDevice(data); - case 691: return new ::Ifc4x3_rc3::IfcMooringDeviceType(data); - case 692: return new ::Ifc4x3_rc3::IfcMooringDeviceTypeEnum(data); - case 693: return new ::Ifc4x3_rc3::IfcMotorConnection(data); - case 694: return new ::Ifc4x3_rc3::IfcMotorConnectionType(data); - case 695: return new ::Ifc4x3_rc3::IfcMotorConnectionTypeEnum(data); - case 696: return new ::Ifc4x3_rc3::IfcNamedUnit(data); - case 697: return new ::Ifc4x3_rc3::IfcNavigationElement(data); - case 698: return new ::Ifc4x3_rc3::IfcNavigationElementType(data); - case 699: return new ::Ifc4x3_rc3::IfcNavigationElementTypeEnum(data); - case 700: return new ::Ifc4x3_rc3::IfcNonNegativeLengthMeasure(data); - case 701: return new ::Ifc4x3_rc3::IfcNormalisedRatioMeasure(data); - case 702: return new ::Ifc4x3_rc3::IfcNumericMeasure(data); - case 703: return new ::Ifc4x3_rc3::IfcObject(data); - case 704: return new ::Ifc4x3_rc3::IfcObjectDefinition(data); - case 705: return new ::Ifc4x3_rc3::IfcObjective(data); - case 706: return new ::Ifc4x3_rc3::IfcObjectiveEnum(data); - case 707: return new ::Ifc4x3_rc3::IfcObjectPlacement(data); - case 709: return new ::Ifc4x3_rc3::IfcObjectTypeEnum(data); - case 710: return new ::Ifc4x3_rc3::IfcOccupant(data); - case 711: return new ::Ifc4x3_rc3::IfcOccupantTypeEnum(data); - case 712: return new ::Ifc4x3_rc3::IfcOffsetCurve(data); - case 713: return new ::Ifc4x3_rc3::IfcOffsetCurve2D(data); - case 714: return new ::Ifc4x3_rc3::IfcOffsetCurve3D(data); - case 715: return new ::Ifc4x3_rc3::IfcOffsetCurveByDistances(data); - case 716: return new ::Ifc4x3_rc3::IfcOpenCrossProfileDef(data); - case 717: return new ::Ifc4x3_rc3::IfcOpeningElement(data); - case 718: return new ::Ifc4x3_rc3::IfcOpeningElementTypeEnum(data); - case 719: return new ::Ifc4x3_rc3::IfcOpeningStandardCase(data); - case 720: return new ::Ifc4x3_rc3::IfcOpenShell(data); - case 721: return new ::Ifc4x3_rc3::IfcOrganization(data); - case 722: return new ::Ifc4x3_rc3::IfcOrganizationRelationship(data); - case 723: return new ::Ifc4x3_rc3::IfcOrientedEdge(data); - case 724: return new ::Ifc4x3_rc3::IfcOuterBoundaryCurve(data); - case 725: return new ::Ifc4x3_rc3::IfcOutlet(data); - case 726: return new ::Ifc4x3_rc3::IfcOutletType(data); - case 727: return new ::Ifc4x3_rc3::IfcOutletTypeEnum(data); - case 728: return new ::Ifc4x3_rc3::IfcOwnerHistory(data); - case 729: return new ::Ifc4x3_rc3::IfcParameterizedProfileDef(data); - case 730: return new ::Ifc4x3_rc3::IfcParameterValue(data); - case 731: return new ::Ifc4x3_rc3::IfcPath(data); - case 732: return new ::Ifc4x3_rc3::IfcPavement(data); - case 733: return new ::Ifc4x3_rc3::IfcPavementType(data); - case 734: return new ::Ifc4x3_rc3::IfcPcurve(data); - case 735: return new ::Ifc4x3_rc3::IfcPerformanceHistory(data); - case 736: return new ::Ifc4x3_rc3::IfcPerformanceHistoryTypeEnum(data); - case 737: return new ::Ifc4x3_rc3::IfcPermeableCoveringOperationEnum(data); - case 738: return new ::Ifc4x3_rc3::IfcPermeableCoveringProperties(data); - case 739: return new ::Ifc4x3_rc3::IfcPermit(data); - case 740: return new ::Ifc4x3_rc3::IfcPermitTypeEnum(data); - case 741: return new ::Ifc4x3_rc3::IfcPerson(data); - case 742: return new ::Ifc4x3_rc3::IfcPersonAndOrganization(data); - case 743: return new ::Ifc4x3_rc3::IfcPHMeasure(data); - case 744: return new ::Ifc4x3_rc3::IfcPhysicalComplexQuantity(data); - case 745: return new ::Ifc4x3_rc3::IfcPhysicalOrVirtualEnum(data); - case 746: return new ::Ifc4x3_rc3::IfcPhysicalQuantity(data); - case 747: return new ::Ifc4x3_rc3::IfcPhysicalSimpleQuantity(data); - case 748: return new ::Ifc4x3_rc3::IfcPile(data); - case 749: return new ::Ifc4x3_rc3::IfcPileConstructionEnum(data); - case 750: return new ::Ifc4x3_rc3::IfcPileType(data); - case 751: return new ::Ifc4x3_rc3::IfcPileTypeEnum(data); - case 752: return new ::Ifc4x3_rc3::IfcPipeFitting(data); - case 753: return new ::Ifc4x3_rc3::IfcPipeFittingType(data); - case 754: return new ::Ifc4x3_rc3::IfcPipeFittingTypeEnum(data); - case 755: return new ::Ifc4x3_rc3::IfcPipeSegment(data); - case 756: return new ::Ifc4x3_rc3::IfcPipeSegmentType(data); - case 757: return new ::Ifc4x3_rc3::IfcPipeSegmentTypeEnum(data); - case 758: return new ::Ifc4x3_rc3::IfcPixelTexture(data); - case 759: return new ::Ifc4x3_rc3::IfcPlacement(data); - case 760: return new ::Ifc4x3_rc3::IfcPlanarBox(data); - case 761: return new ::Ifc4x3_rc3::IfcPlanarExtent(data); - case 762: return new ::Ifc4x3_rc3::IfcPlanarForceMeasure(data); - case 763: return new ::Ifc4x3_rc3::IfcPlane(data); - case 764: return new ::Ifc4x3_rc3::IfcPlaneAngleMeasure(data); - case 765: return new ::Ifc4x3_rc3::IfcPlant(data); - case 766: return new ::Ifc4x3_rc3::IfcPlate(data); - case 767: return new ::Ifc4x3_rc3::IfcPlateStandardCase(data); - case 768: return new ::Ifc4x3_rc3::IfcPlateType(data); - case 769: return new ::Ifc4x3_rc3::IfcPlateTypeEnum(data); - case 770: return new ::Ifc4x3_rc3::IfcPoint(data); - case 771: return new ::Ifc4x3_rc3::IfcPointByDistanceExpression(data); - case 772: return new ::Ifc4x3_rc3::IfcPointOnCurve(data); - case 773: return new ::Ifc4x3_rc3::IfcPointOnSurface(data); - case 775: return new ::Ifc4x3_rc3::IfcPolygonalBoundedHalfSpace(data); - case 776: return new ::Ifc4x3_rc3::IfcPolygonalFaceSet(data); - case 777: return new ::Ifc4x3_rc3::IfcPolyline(data); - case 778: return new ::Ifc4x3_rc3::IfcPolyLoop(data); - case 779: return new ::Ifc4x3_rc3::IfcPolynomialCurve(data); - case 780: return new ::Ifc4x3_rc3::IfcPort(data); - case 781: return new ::Ifc4x3_rc3::IfcPositioningElement(data); - case 782: return new ::Ifc4x3_rc3::IfcPositiveInteger(data); - case 783: return new ::Ifc4x3_rc3::IfcPositiveLengthMeasure(data); - case 784: return new ::Ifc4x3_rc3::IfcPositivePlaneAngleMeasure(data); - case 785: return new ::Ifc4x3_rc3::IfcPositiveRatioMeasure(data); - case 786: return new ::Ifc4x3_rc3::IfcPostalAddress(data); - case 787: return new ::Ifc4x3_rc3::IfcPowerMeasure(data); - case 788: return new ::Ifc4x3_rc3::IfcPreDefinedColour(data); - case 789: return new ::Ifc4x3_rc3::IfcPreDefinedCurveFont(data); - case 790: return new ::Ifc4x3_rc3::IfcPreDefinedItem(data); - case 791: return new ::Ifc4x3_rc3::IfcPreDefinedProperties(data); - case 792: return new ::Ifc4x3_rc3::IfcPreDefinedPropertySet(data); - case 793: return new ::Ifc4x3_rc3::IfcPreDefinedTextFont(data); - case 794: return new ::Ifc4x3_rc3::IfcPreferredSurfaceCurveRepresentation(data); - case 795: return new ::Ifc4x3_rc3::IfcPresentableText(data); - case 796: return new ::Ifc4x3_rc3::IfcPresentationItem(data); - case 797: return new ::Ifc4x3_rc3::IfcPresentationLayerAssignment(data); - case 798: return new ::Ifc4x3_rc3::IfcPresentationLayerWithStyle(data); - case 799: return new ::Ifc4x3_rc3::IfcPresentationStyle(data); - case 800: return new ::Ifc4x3_rc3::IfcPressureMeasure(data); - case 801: return new ::Ifc4x3_rc3::IfcProcedure(data); - case 802: return new ::Ifc4x3_rc3::IfcProcedureType(data); - case 803: return new ::Ifc4x3_rc3::IfcProcedureTypeEnum(data); - case 804: return new ::Ifc4x3_rc3::IfcProcess(data); - case 806: return new ::Ifc4x3_rc3::IfcProduct(data); - case 807: return new ::Ifc4x3_rc3::IfcProductDefinitionShape(data); - case 808: return new ::Ifc4x3_rc3::IfcProductRepresentation(data); - case 811: return new ::Ifc4x3_rc3::IfcProfileDef(data); - case 812: return new ::Ifc4x3_rc3::IfcProfileProperties(data); - case 813: return new ::Ifc4x3_rc3::IfcProfileTypeEnum(data); - case 814: return new ::Ifc4x3_rc3::IfcProject(data); - case 815: return new ::Ifc4x3_rc3::IfcProjectedCRS(data); - case 816: return new ::Ifc4x3_rc3::IfcProjectedOrTrueLengthEnum(data); - case 817: return new ::Ifc4x3_rc3::IfcProjectionElement(data); - case 818: return new ::Ifc4x3_rc3::IfcProjectionElementTypeEnum(data); - case 819: return new ::Ifc4x3_rc3::IfcProjectLibrary(data); - case 820: return new ::Ifc4x3_rc3::IfcProjectOrder(data); - case 821: return new ::Ifc4x3_rc3::IfcProjectOrderTypeEnum(data); - case 822: return new ::Ifc4x3_rc3::IfcProperty(data); - case 823: return new ::Ifc4x3_rc3::IfcPropertyAbstraction(data); - case 824: return new ::Ifc4x3_rc3::IfcPropertyBoundedValue(data); - case 825: return new ::Ifc4x3_rc3::IfcPropertyDefinition(data); - case 826: return new ::Ifc4x3_rc3::IfcPropertyDependencyRelationship(data); - case 827: return new ::Ifc4x3_rc3::IfcPropertyEnumeratedValue(data); - case 828: return new ::Ifc4x3_rc3::IfcPropertyEnumeration(data); - case 829: return new ::Ifc4x3_rc3::IfcPropertyListValue(data); - case 830: return new ::Ifc4x3_rc3::IfcPropertyReferenceValue(data); - case 831: return new ::Ifc4x3_rc3::IfcPropertySet(data); - case 832: return new ::Ifc4x3_rc3::IfcPropertySetDefinition(data); - case 834: return new ::Ifc4x3_rc3::IfcPropertySetDefinitionSet(data); - case 835: return new ::Ifc4x3_rc3::IfcPropertySetTemplate(data); - case 836: return new ::Ifc4x3_rc3::IfcPropertySetTemplateTypeEnum(data); - case 837: return new ::Ifc4x3_rc3::IfcPropertySingleValue(data); - case 838: return new ::Ifc4x3_rc3::IfcPropertyTableValue(data); - case 839: return new ::Ifc4x3_rc3::IfcPropertyTemplate(data); - case 840: return new ::Ifc4x3_rc3::IfcPropertyTemplateDefinition(data); - case 841: return new ::Ifc4x3_rc3::IfcProtectiveDevice(data); - case 842: return new ::Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnit(data); - case 843: return new ::Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnitType(data); - case 844: return new ::Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnitTypeEnum(data); - case 845: return new ::Ifc4x3_rc3::IfcProtectiveDeviceType(data); - case 846: return new ::Ifc4x3_rc3::IfcProtectiveDeviceTypeEnum(data); - case 847: return new ::Ifc4x3_rc3::IfcProxy(data); - case 848: return new ::Ifc4x3_rc3::IfcPump(data); - case 849: return new ::Ifc4x3_rc3::IfcPumpType(data); - case 850: return new ::Ifc4x3_rc3::IfcPumpTypeEnum(data); - case 851: return new ::Ifc4x3_rc3::IfcQuantityArea(data); - case 852: return new ::Ifc4x3_rc3::IfcQuantityCount(data); - case 853: return new ::Ifc4x3_rc3::IfcQuantityLength(data); - case 854: return new ::Ifc4x3_rc3::IfcQuantitySet(data); - case 855: return new ::Ifc4x3_rc3::IfcQuantityTime(data); - case 856: return new ::Ifc4x3_rc3::IfcQuantityVolume(data); - case 857: return new ::Ifc4x3_rc3::IfcQuantityWeight(data); - case 858: return new ::Ifc4x3_rc3::IfcRadioActivityMeasure(data); - case 859: return new ::Ifc4x3_rc3::IfcRail(data); - case 860: return new ::Ifc4x3_rc3::IfcRailing(data); - case 861: return new ::Ifc4x3_rc3::IfcRailingType(data); - case 862: return new ::Ifc4x3_rc3::IfcRailingTypeEnum(data); - case 863: return new ::Ifc4x3_rc3::IfcRailType(data); - case 864: return new ::Ifc4x3_rc3::IfcRailTypeEnum(data); - case 865: return new ::Ifc4x3_rc3::IfcRailway(data); - case 866: return new ::Ifc4x3_rc3::IfcRailwayPartTypeEnum(data); - case 867: return new ::Ifc4x3_rc3::IfcRailwayTypeEnum(data); - case 868: return new ::Ifc4x3_rc3::IfcRamp(data); - case 869: return new ::Ifc4x3_rc3::IfcRampFlight(data); - case 870: return new ::Ifc4x3_rc3::IfcRampFlightType(data); - case 871: return new ::Ifc4x3_rc3::IfcRampFlightTypeEnum(data); - case 872: return new ::Ifc4x3_rc3::IfcRampType(data); - case 873: return new ::Ifc4x3_rc3::IfcRampTypeEnum(data); - case 874: return new ::Ifc4x3_rc3::IfcRatioMeasure(data); - case 875: return new ::Ifc4x3_rc3::IfcRationalBSplineCurveWithKnots(data); - case 876: return new ::Ifc4x3_rc3::IfcRationalBSplineSurfaceWithKnots(data); - case 877: return new ::Ifc4x3_rc3::IfcReal(data); - case 878: return new ::Ifc4x3_rc3::IfcRectangleHollowProfileDef(data); - case 879: return new ::Ifc4x3_rc3::IfcRectangleProfileDef(data); - case 880: return new ::Ifc4x3_rc3::IfcRectangularPyramid(data); - case 881: return new ::Ifc4x3_rc3::IfcRectangularTrimmedSurface(data); - case 882: return new ::Ifc4x3_rc3::IfcRecurrencePattern(data); - case 883: return new ::Ifc4x3_rc3::IfcRecurrenceTypeEnum(data); - case 884: return new ::Ifc4x3_rc3::IfcReference(data); - case 885: return new ::Ifc4x3_rc3::IfcReferent(data); - case 886: return new ::Ifc4x3_rc3::IfcReferentTypeEnum(data); - case 887: return new ::Ifc4x3_rc3::IfcReflectanceMethodEnum(data); - case 888: return new ::Ifc4x3_rc3::IfcRegularTimeSeries(data); - case 889: return new ::Ifc4x3_rc3::IfcReinforcedSoil(data); - case 890: return new ::Ifc4x3_rc3::IfcReinforcedSoilTypeEnum(data); - case 891: return new ::Ifc4x3_rc3::IfcReinforcementBarProperties(data); - case 892: return new ::Ifc4x3_rc3::IfcReinforcementDefinitionProperties(data); - case 893: return new ::Ifc4x3_rc3::IfcReinforcingBar(data); - case 894: return new ::Ifc4x3_rc3::IfcReinforcingBarRoleEnum(data); - case 895: return new ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum(data); - case 896: return new ::Ifc4x3_rc3::IfcReinforcingBarType(data); - case 897: return new ::Ifc4x3_rc3::IfcReinforcingBarTypeEnum(data); - case 898: return new ::Ifc4x3_rc3::IfcReinforcingElement(data); - case 899: return new ::Ifc4x3_rc3::IfcReinforcingElementType(data); - case 900: return new ::Ifc4x3_rc3::IfcReinforcingMesh(data); - case 901: return new ::Ifc4x3_rc3::IfcReinforcingMeshType(data); - case 902: return new ::Ifc4x3_rc3::IfcReinforcingMeshTypeEnum(data); - case 903: return new ::Ifc4x3_rc3::IfcRelAggregates(data); - case 904: return new ::Ifc4x3_rc3::IfcRelAssigns(data); - case 905: return new ::Ifc4x3_rc3::IfcRelAssignsToActor(data); - case 906: return new ::Ifc4x3_rc3::IfcRelAssignsToControl(data); - case 907: return new ::Ifc4x3_rc3::IfcRelAssignsToGroup(data); - case 908: return new ::Ifc4x3_rc3::IfcRelAssignsToGroupByFactor(data); - case 909: return new ::Ifc4x3_rc3::IfcRelAssignsToProcess(data); - case 910: return new ::Ifc4x3_rc3::IfcRelAssignsToProduct(data); - case 911: return new ::Ifc4x3_rc3::IfcRelAssignsToResource(data); - case 912: return new ::Ifc4x3_rc3::IfcRelAssociates(data); - case 913: return new ::Ifc4x3_rc3::IfcRelAssociatesApproval(data); - case 914: return new ::Ifc4x3_rc3::IfcRelAssociatesClassification(data); - case 915: return new ::Ifc4x3_rc3::IfcRelAssociatesConstraint(data); - case 916: return new ::Ifc4x3_rc3::IfcRelAssociatesDocument(data); - case 917: return new ::Ifc4x3_rc3::IfcRelAssociatesLibrary(data); - case 918: return new ::Ifc4x3_rc3::IfcRelAssociatesMaterial(data); - case 919: return new ::Ifc4x3_rc3::IfcRelAssociatesProfileDef(data); - case 920: return new ::Ifc4x3_rc3::IfcRelationship(data); - case 921: return new ::Ifc4x3_rc3::IfcRelConnects(data); - case 922: return new ::Ifc4x3_rc3::IfcRelConnectsElements(data); - case 923: return new ::Ifc4x3_rc3::IfcRelConnectsPathElements(data); - case 924: return new ::Ifc4x3_rc3::IfcRelConnectsPorts(data); - case 925: return new ::Ifc4x3_rc3::IfcRelConnectsPortToElement(data); - case 926: return new ::Ifc4x3_rc3::IfcRelConnectsStructuralActivity(data); - case 927: return new ::Ifc4x3_rc3::IfcRelConnectsStructuralMember(data); - case 928: return new ::Ifc4x3_rc3::IfcRelConnectsWithEccentricity(data); - case 929: return new ::Ifc4x3_rc3::IfcRelConnectsWithRealizingElements(data); - case 930: return new ::Ifc4x3_rc3::IfcRelContainedInSpatialStructure(data); - case 931: return new ::Ifc4x3_rc3::IfcRelCoversBldgElements(data); - case 932: return new ::Ifc4x3_rc3::IfcRelCoversSpaces(data); - case 933: return new ::Ifc4x3_rc3::IfcRelDeclares(data); - case 934: return new ::Ifc4x3_rc3::IfcRelDecomposes(data); - case 935: return new ::Ifc4x3_rc3::IfcRelDefines(data); - case 936: return new ::Ifc4x3_rc3::IfcRelDefinesByObject(data); - case 937: return new ::Ifc4x3_rc3::IfcRelDefinesByProperties(data); - case 938: return new ::Ifc4x3_rc3::IfcRelDefinesByTemplate(data); - case 939: return new ::Ifc4x3_rc3::IfcRelDefinesByType(data); - case 940: return new ::Ifc4x3_rc3::IfcRelFillsElement(data); - case 941: return new ::Ifc4x3_rc3::IfcRelFlowControlElements(data); - case 942: return new ::Ifc4x3_rc3::IfcRelInterferesElements(data); - case 943: return new ::Ifc4x3_rc3::IfcRelNests(data); - case 944: return new ::Ifc4x3_rc3::IfcRelPositions(data); - case 945: return new ::Ifc4x3_rc3::IfcRelProjectsElement(data); - case 946: return new ::Ifc4x3_rc3::IfcRelReferencedInSpatialStructure(data); - case 947: return new ::Ifc4x3_rc3::IfcRelSequence(data); - case 948: return new ::Ifc4x3_rc3::IfcRelServicesBuildings(data); - case 949: return new ::Ifc4x3_rc3::IfcRelSpaceBoundary(data); - case 950: return new ::Ifc4x3_rc3::IfcRelSpaceBoundary1stLevel(data); - case 951: return new ::Ifc4x3_rc3::IfcRelSpaceBoundary2ndLevel(data); - case 952: return new ::Ifc4x3_rc3::IfcRelVoidsElement(data); - case 953: return new ::Ifc4x3_rc3::IfcReparametrisedCompositeCurveSegment(data); - case 954: return new ::Ifc4x3_rc3::IfcRepresentation(data); - case 955: return new ::Ifc4x3_rc3::IfcRepresentationContext(data); - case 956: return new ::Ifc4x3_rc3::IfcRepresentationItem(data); - case 957: return new ::Ifc4x3_rc3::IfcRepresentationMap(data); - case 958: return new ::Ifc4x3_rc3::IfcResource(data); - case 959: return new ::Ifc4x3_rc3::IfcResourceApprovalRelationship(data); - case 960: return new ::Ifc4x3_rc3::IfcResourceConstraintRelationship(data); - case 961: return new ::Ifc4x3_rc3::IfcResourceLevelRelationship(data); - case 964: return new ::Ifc4x3_rc3::IfcResourceTime(data); - case 965: return new ::Ifc4x3_rc3::IfcRevolvedAreaSolid(data); - case 966: return new ::Ifc4x3_rc3::IfcRevolvedAreaSolidTapered(data); - case 967: return new ::Ifc4x3_rc3::IfcRightCircularCone(data); - case 968: return new ::Ifc4x3_rc3::IfcRightCircularCylinder(data); - case 969: return new ::Ifc4x3_rc3::IfcRoad(data); - case 970: return new ::Ifc4x3_rc3::IfcRoadPartTypeEnum(data); - case 971: return new ::Ifc4x3_rc3::IfcRoadTypeEnum(data); - case 972: return new ::Ifc4x3_rc3::IfcRoleEnum(data); - case 973: return new ::Ifc4x3_rc3::IfcRoof(data); - case 974: return new ::Ifc4x3_rc3::IfcRoofType(data); - case 975: return new ::Ifc4x3_rc3::IfcRoofTypeEnum(data); - case 976: return new ::Ifc4x3_rc3::IfcRoot(data); - case 977: return new ::Ifc4x3_rc3::IfcRotationalFrequencyMeasure(data); - case 978: return new ::Ifc4x3_rc3::IfcRotationalMassMeasure(data); - case 979: return new ::Ifc4x3_rc3::IfcRotationalStiffnessMeasure(data); - case 981: return new ::Ifc4x3_rc3::IfcRoundedRectangleProfileDef(data); - case 982: return new ::Ifc4x3_rc3::IfcSanitaryTerminal(data); - case 983: return new ::Ifc4x3_rc3::IfcSanitaryTerminalType(data); - case 984: return new ::Ifc4x3_rc3::IfcSanitaryTerminalTypeEnum(data); - case 985: return new ::Ifc4x3_rc3::IfcSchedulingTime(data); - case 986: return new ::Ifc4x3_rc3::IfcSeamCurve(data); - case 987: return new ::Ifc4x3_rc3::IfcSecondOrderPolynomialSpiral(data); - case 988: return new ::Ifc4x3_rc3::IfcSectionalAreaIntegralMeasure(data); - case 989: return new ::Ifc4x3_rc3::IfcSectionedSolid(data); - case 990: return new ::Ifc4x3_rc3::IfcSectionedSolidHorizontal(data); - case 991: return new ::Ifc4x3_rc3::IfcSectionedSpine(data); - case 992: return new ::Ifc4x3_rc3::IfcSectionedSurface(data); - case 993: return new ::Ifc4x3_rc3::IfcSectionModulusMeasure(data); - case 994: return new ::Ifc4x3_rc3::IfcSectionProperties(data); - case 995: return new ::Ifc4x3_rc3::IfcSectionReinforcementProperties(data); - case 996: return new ::Ifc4x3_rc3::IfcSectionTypeEnum(data); - case 997: return new ::Ifc4x3_rc3::IfcSegment(data); - case 998: return new ::Ifc4x3_rc3::IfcSegmentedReferenceCurve(data); - case 1000: return new ::Ifc4x3_rc3::IfcSensor(data); - case 1001: return new ::Ifc4x3_rc3::IfcSensorType(data); - case 1002: return new ::Ifc4x3_rc3::IfcSensorTypeEnum(data); - case 1003: return new ::Ifc4x3_rc3::IfcSequenceEnum(data); - case 1004: return new ::Ifc4x3_rc3::IfcShadingDevice(data); - case 1005: return new ::Ifc4x3_rc3::IfcShadingDeviceType(data); - case 1006: return new ::Ifc4x3_rc3::IfcShadingDeviceTypeEnum(data); - case 1007: return new ::Ifc4x3_rc3::IfcShapeAspect(data); - case 1008: return new ::Ifc4x3_rc3::IfcShapeModel(data); - case 1009: return new ::Ifc4x3_rc3::IfcShapeRepresentation(data); - case 1010: return new ::Ifc4x3_rc3::IfcShearModulusMeasure(data); - case 1012: return new ::Ifc4x3_rc3::IfcShellBasedSurfaceModel(data); - case 1013: return new ::Ifc4x3_rc3::IfcSign(data); - case 1014: return new ::Ifc4x3_rc3::IfcSignal(data); - case 1015: return new ::Ifc4x3_rc3::IfcSignalType(data); - case 1016: return new ::Ifc4x3_rc3::IfcSignalTypeEnum(data); - case 1017: return new ::Ifc4x3_rc3::IfcSignType(data); - case 1018: return new ::Ifc4x3_rc3::IfcSignTypeEnum(data); - case 1019: return new ::Ifc4x3_rc3::IfcSimpleProperty(data); - case 1020: return new ::Ifc4x3_rc3::IfcSimplePropertyTemplate(data); - case 1021: return new ::Ifc4x3_rc3::IfcSimplePropertyTemplateTypeEnum(data); - case 1023: return new ::Ifc4x3_rc3::IfcSine(data); - case 1024: return new ::Ifc4x3_rc3::IfcSIPrefix(data); - case 1025: return new ::Ifc4x3_rc3::IfcSite(data); - case 1026: return new ::Ifc4x3_rc3::IfcSIUnit(data); - case 1027: return new ::Ifc4x3_rc3::IfcSIUnitName(data); - case 1029: return new ::Ifc4x3_rc3::IfcSlab(data); - case 1030: return new ::Ifc4x3_rc3::IfcSlabElementedCase(data); - case 1031: return new ::Ifc4x3_rc3::IfcSlabStandardCase(data); - case 1032: return new ::Ifc4x3_rc3::IfcSlabType(data); - case 1033: return new ::Ifc4x3_rc3::IfcSlabTypeEnum(data); - case 1034: return new ::Ifc4x3_rc3::IfcSlippageConnectionCondition(data); - case 1035: return new ::Ifc4x3_rc3::IfcSolarDevice(data); - case 1036: return new ::Ifc4x3_rc3::IfcSolarDeviceType(data); - case 1037: return new ::Ifc4x3_rc3::IfcSolarDeviceTypeEnum(data); - case 1038: return new ::Ifc4x3_rc3::IfcSolidAngleMeasure(data); - case 1039: return new ::Ifc4x3_rc3::IfcSolidModel(data); - case 1041: return new ::Ifc4x3_rc3::IfcSolidStratum(data); - case 1042: return new ::Ifc4x3_rc3::IfcSoundPowerLevelMeasure(data); - case 1043: return new ::Ifc4x3_rc3::IfcSoundPowerMeasure(data); - case 1044: return new ::Ifc4x3_rc3::IfcSoundPressureLevelMeasure(data); - case 1045: return new ::Ifc4x3_rc3::IfcSoundPressureMeasure(data); - case 1046: return new ::Ifc4x3_rc3::IfcSpace(data); - case 1048: return new ::Ifc4x3_rc3::IfcSpaceHeater(data); - case 1049: return new ::Ifc4x3_rc3::IfcSpaceHeaterType(data); - case 1050: return new ::Ifc4x3_rc3::IfcSpaceHeaterTypeEnum(data); - case 1051: return new ::Ifc4x3_rc3::IfcSpaceType(data); - case 1052: return new ::Ifc4x3_rc3::IfcSpaceTypeEnum(data); - case 1053: return new ::Ifc4x3_rc3::IfcSpatialElement(data); - case 1054: return new ::Ifc4x3_rc3::IfcSpatialElementType(data); - case 1056: return new ::Ifc4x3_rc3::IfcSpatialStructureElement(data); - case 1057: return new ::Ifc4x3_rc3::IfcSpatialStructureElementType(data); - case 1058: return new ::Ifc4x3_rc3::IfcSpatialZone(data); - case 1059: return new ::Ifc4x3_rc3::IfcSpatialZoneType(data); - case 1060: return new ::Ifc4x3_rc3::IfcSpatialZoneTypeEnum(data); - case 1061: return new ::Ifc4x3_rc3::IfcSpecificHeatCapacityMeasure(data); - case 1062: return new ::Ifc4x3_rc3::IfcSpecularExponent(data); - case 1064: return new ::Ifc4x3_rc3::IfcSpecularRoughness(data); - case 1065: return new ::Ifc4x3_rc3::IfcSphere(data); - case 1066: return new ::Ifc4x3_rc3::IfcSphericalSurface(data); - case 1067: return new ::Ifc4x3_rc3::IfcSpiral(data); - case 1068: return new ::Ifc4x3_rc3::IfcStackTerminal(data); - case 1069: return new ::Ifc4x3_rc3::IfcStackTerminalType(data); - case 1070: return new ::Ifc4x3_rc3::IfcStackTerminalTypeEnum(data); - case 1071: return new ::Ifc4x3_rc3::IfcStair(data); - case 1072: return new ::Ifc4x3_rc3::IfcStairFlight(data); - case 1073: return new ::Ifc4x3_rc3::IfcStairFlightType(data); - case 1074: return new ::Ifc4x3_rc3::IfcStairFlightTypeEnum(data); - case 1075: return new ::Ifc4x3_rc3::IfcStairType(data); - case 1076: return new ::Ifc4x3_rc3::IfcStairTypeEnum(data); - case 1077: return new ::Ifc4x3_rc3::IfcStateEnum(data); - case 1078: return new ::Ifc4x3_rc3::IfcStructuralAction(data); - case 1079: return new ::Ifc4x3_rc3::IfcStructuralActivity(data); - case 1081: return new ::Ifc4x3_rc3::IfcStructuralAnalysisModel(data); - case 1082: return new ::Ifc4x3_rc3::IfcStructuralConnection(data); - case 1083: return new ::Ifc4x3_rc3::IfcStructuralConnectionCondition(data); - case 1084: return new ::Ifc4x3_rc3::IfcStructuralCurveAction(data); - case 1085: return new ::Ifc4x3_rc3::IfcStructuralCurveActivityTypeEnum(data); - case 1086: return new ::Ifc4x3_rc3::IfcStructuralCurveConnection(data); - case 1087: return new ::Ifc4x3_rc3::IfcStructuralCurveMember(data); - case 1088: return new ::Ifc4x3_rc3::IfcStructuralCurveMemberTypeEnum(data); - case 1089: return new ::Ifc4x3_rc3::IfcStructuralCurveMemberVarying(data); - case 1090: return new ::Ifc4x3_rc3::IfcStructuralCurveReaction(data); - case 1091: return new ::Ifc4x3_rc3::IfcStructuralItem(data); - case 1092: return new ::Ifc4x3_rc3::IfcStructuralLinearAction(data); - case 1093: return new ::Ifc4x3_rc3::IfcStructuralLoad(data); - case 1094: return new ::Ifc4x3_rc3::IfcStructuralLoadCase(data); - case 1095: return new ::Ifc4x3_rc3::IfcStructuralLoadConfiguration(data); - case 1096: return new ::Ifc4x3_rc3::IfcStructuralLoadGroup(data); - case 1097: return new ::Ifc4x3_rc3::IfcStructuralLoadLinearForce(data); - case 1098: return new ::Ifc4x3_rc3::IfcStructuralLoadOrResult(data); - case 1099: return new ::Ifc4x3_rc3::IfcStructuralLoadPlanarForce(data); - case 1100: return new ::Ifc4x3_rc3::IfcStructuralLoadSingleDisplacement(data); - case 1101: return new ::Ifc4x3_rc3::IfcStructuralLoadSingleDisplacementDistortion(data); - case 1102: return new ::Ifc4x3_rc3::IfcStructuralLoadSingleForce(data); - case 1103: return new ::Ifc4x3_rc3::IfcStructuralLoadSingleForceWarping(data); - case 1104: return new ::Ifc4x3_rc3::IfcStructuralLoadStatic(data); - case 1105: return new ::Ifc4x3_rc3::IfcStructuralLoadTemperature(data); - case 1106: return new ::Ifc4x3_rc3::IfcStructuralMember(data); - case 1107: return new ::Ifc4x3_rc3::IfcStructuralPlanarAction(data); - case 1108: return new ::Ifc4x3_rc3::IfcStructuralPointAction(data); - case 1109: return new ::Ifc4x3_rc3::IfcStructuralPointConnection(data); - case 1110: return new ::Ifc4x3_rc3::IfcStructuralPointReaction(data); - case 1111: return new ::Ifc4x3_rc3::IfcStructuralReaction(data); - case 1112: return new ::Ifc4x3_rc3::IfcStructuralResultGroup(data); - case 1113: return new ::Ifc4x3_rc3::IfcStructuralSurfaceAction(data); - case 1114: return new ::Ifc4x3_rc3::IfcStructuralSurfaceActivityTypeEnum(data); - case 1115: return new ::Ifc4x3_rc3::IfcStructuralSurfaceConnection(data); - case 1116: return new ::Ifc4x3_rc3::IfcStructuralSurfaceMember(data); - case 1117: return new ::Ifc4x3_rc3::IfcStructuralSurfaceMemberTypeEnum(data); - case 1118: return new ::Ifc4x3_rc3::IfcStructuralSurfaceMemberVarying(data); - case 1119: return new ::Ifc4x3_rc3::IfcStructuralSurfaceReaction(data); - case 1120: return new ::Ifc4x3_rc3::IfcStyledItem(data); - case 1121: return new ::Ifc4x3_rc3::IfcStyledRepresentation(data); - case 1122: return new ::Ifc4x3_rc3::IfcStyleModel(data); - case 1123: return new ::Ifc4x3_rc3::IfcSubContractResource(data); - case 1124: return new ::Ifc4x3_rc3::IfcSubContractResourceType(data); - case 1125: return new ::Ifc4x3_rc3::IfcSubContractResourceTypeEnum(data); - case 1126: return new ::Ifc4x3_rc3::IfcSubedge(data); - case 1127: return new ::Ifc4x3_rc3::IfcSurface(data); - case 1128: return new ::Ifc4x3_rc3::IfcSurfaceCurve(data); - case 1129: return new ::Ifc4x3_rc3::IfcSurfaceCurveSweptAreaSolid(data); - case 1130: return new ::Ifc4x3_rc3::IfcSurfaceFeature(data); - case 1131: return new ::Ifc4x3_rc3::IfcSurfaceFeatureTypeEnum(data); - case 1132: return new ::Ifc4x3_rc3::IfcSurfaceOfLinearExtrusion(data); - case 1133: return new ::Ifc4x3_rc3::IfcSurfaceOfRevolution(data); - case 1135: return new ::Ifc4x3_rc3::IfcSurfaceReinforcementArea(data); - case 1136: return new ::Ifc4x3_rc3::IfcSurfaceSide(data); - case 1137: return new ::Ifc4x3_rc3::IfcSurfaceStyle(data); - case 1139: return new ::Ifc4x3_rc3::IfcSurfaceStyleLighting(data); - case 1140: return new ::Ifc4x3_rc3::IfcSurfaceStyleRefraction(data); - case 1141: return new ::Ifc4x3_rc3::IfcSurfaceStyleRendering(data); - case 1142: return new ::Ifc4x3_rc3::IfcSurfaceStyleShading(data); - case 1143: return new ::Ifc4x3_rc3::IfcSurfaceStyleWithTextures(data); - case 1144: return new ::Ifc4x3_rc3::IfcSurfaceTexture(data); - case 1145: return new ::Ifc4x3_rc3::IfcSweptAreaSolid(data); - case 1146: return new ::Ifc4x3_rc3::IfcSweptDiskSolid(data); - case 1147: return new ::Ifc4x3_rc3::IfcSweptDiskSolidPolygonal(data); - case 1148: return new ::Ifc4x3_rc3::IfcSweptSurface(data); - case 1149: return new ::Ifc4x3_rc3::IfcSwitchingDevice(data); - case 1150: return new ::Ifc4x3_rc3::IfcSwitchingDeviceType(data); - case 1151: return new ::Ifc4x3_rc3::IfcSwitchingDeviceTypeEnum(data); - case 1152: return new ::Ifc4x3_rc3::IfcSystem(data); - case 1153: return new ::Ifc4x3_rc3::IfcSystemFurnitureElement(data); - case 1154: return new ::Ifc4x3_rc3::IfcSystemFurnitureElementType(data); - case 1155: return new ::Ifc4x3_rc3::IfcSystemFurnitureElementTypeEnum(data); - case 1156: return new ::Ifc4x3_rc3::IfcTable(data); - case 1157: return new ::Ifc4x3_rc3::IfcTableColumn(data); - case 1158: return new ::Ifc4x3_rc3::IfcTableRow(data); - case 1159: return new ::Ifc4x3_rc3::IfcTank(data); - case 1160: return new ::Ifc4x3_rc3::IfcTankType(data); - case 1161: return new ::Ifc4x3_rc3::IfcTankTypeEnum(data); - case 1162: return new ::Ifc4x3_rc3::IfcTask(data); - case 1163: return new ::Ifc4x3_rc3::IfcTaskDurationEnum(data); - case 1164: return new ::Ifc4x3_rc3::IfcTaskTime(data); - case 1165: return new ::Ifc4x3_rc3::IfcTaskTimeRecurring(data); - case 1166: return new ::Ifc4x3_rc3::IfcTaskType(data); - case 1167: return new ::Ifc4x3_rc3::IfcTaskTypeEnum(data); - case 1168: return new ::Ifc4x3_rc3::IfcTelecomAddress(data); - case 1169: return new ::Ifc4x3_rc3::IfcTemperatureGradientMeasure(data); - case 1170: return new ::Ifc4x3_rc3::IfcTemperatureRateOfChangeMeasure(data); - case 1171: return new ::Ifc4x3_rc3::IfcTendon(data); - case 1172: return new ::Ifc4x3_rc3::IfcTendonAnchor(data); - case 1173: return new ::Ifc4x3_rc3::IfcTendonAnchorType(data); - case 1174: return new ::Ifc4x3_rc3::IfcTendonAnchorTypeEnum(data); - case 1175: return new ::Ifc4x3_rc3::IfcTendonConduit(data); - case 1176: return new ::Ifc4x3_rc3::IfcTendonConduitType(data); - case 1177: return new ::Ifc4x3_rc3::IfcTendonConduitTypeEnum(data); - case 1178: return new ::Ifc4x3_rc3::IfcTendonType(data); - case 1179: return new ::Ifc4x3_rc3::IfcTendonTypeEnum(data); - case 1180: return new ::Ifc4x3_rc3::IfcTessellatedFaceSet(data); - case 1181: return new ::Ifc4x3_rc3::IfcTessellatedItem(data); - case 1182: return new ::Ifc4x3_rc3::IfcText(data); - case 1183: return new ::Ifc4x3_rc3::IfcTextAlignment(data); - case 1184: return new ::Ifc4x3_rc3::IfcTextDecoration(data); - case 1185: return new ::Ifc4x3_rc3::IfcTextFontName(data); - case 1187: return new ::Ifc4x3_rc3::IfcTextLiteral(data); - case 1188: return new ::Ifc4x3_rc3::IfcTextLiteralWithExtent(data); - case 1189: return new ::Ifc4x3_rc3::IfcTextPath(data); - case 1190: return new ::Ifc4x3_rc3::IfcTextStyle(data); - case 1191: return new ::Ifc4x3_rc3::IfcTextStyleFontModel(data); - case 1192: return new ::Ifc4x3_rc3::IfcTextStyleForDefinedFont(data); - case 1193: return new ::Ifc4x3_rc3::IfcTextStyleTextModel(data); - case 1194: return new ::Ifc4x3_rc3::IfcTextTransformation(data); - case 1195: return new ::Ifc4x3_rc3::IfcTextureCoordinate(data); - case 1196: return new ::Ifc4x3_rc3::IfcTextureCoordinateGenerator(data); - case 1197: return new ::Ifc4x3_rc3::IfcTextureMap(data); - case 1198: return new ::Ifc4x3_rc3::IfcTextureVertex(data); - case 1199: return new ::Ifc4x3_rc3::IfcTextureVertexList(data); - case 1200: return new ::Ifc4x3_rc3::IfcThermalAdmittanceMeasure(data); - case 1201: return new ::Ifc4x3_rc3::IfcThermalConductivityMeasure(data); - case 1202: return new ::Ifc4x3_rc3::IfcThermalExpansionCoefficientMeasure(data); - case 1203: return new ::Ifc4x3_rc3::IfcThermalResistanceMeasure(data); - case 1204: return new ::Ifc4x3_rc3::IfcThermalTransmittanceMeasure(data); - case 1205: return new ::Ifc4x3_rc3::IfcThermodynamicTemperatureMeasure(data); - case 1206: return new ::Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral(data); - case 1207: return new ::Ifc4x3_rc3::IfcTime(data); - case 1208: return new ::Ifc4x3_rc3::IfcTimeMeasure(data); - case 1210: return new ::Ifc4x3_rc3::IfcTimePeriod(data); - case 1211: return new ::Ifc4x3_rc3::IfcTimeSeries(data); - case 1212: return new ::Ifc4x3_rc3::IfcTimeSeriesDataTypeEnum(data); - case 1213: return new ::Ifc4x3_rc3::IfcTimeSeriesValue(data); - case 1214: return new ::Ifc4x3_rc3::IfcTimeStamp(data); - case 1215: return new ::Ifc4x3_rc3::IfcTopologicalRepresentationItem(data); - case 1216: return new ::Ifc4x3_rc3::IfcTopologyRepresentation(data); - case 1217: return new ::Ifc4x3_rc3::IfcToroidalSurface(data); - case 1218: return new ::Ifc4x3_rc3::IfcTorqueMeasure(data); - case 1219: return new ::Ifc4x3_rc3::IfcTrackElement(data); - case 1220: return new ::Ifc4x3_rc3::IfcTrackElementType(data); - case 1221: return new ::Ifc4x3_rc3::IfcTrackElementTypeEnum(data); - case 1222: return new ::Ifc4x3_rc3::IfcTransformer(data); - case 1223: return new ::Ifc4x3_rc3::IfcTransformerType(data); - case 1224: return new ::Ifc4x3_rc3::IfcTransformerTypeEnum(data); - case 1225: return new ::Ifc4x3_rc3::IfcTransitionCode(data); - case 1227: return new ::Ifc4x3_rc3::IfcTransportElement(data); - case 1228: return new ::Ifc4x3_rc3::IfcTransportElementFixedTypeEnum(data); - case 1229: return new ::Ifc4x3_rc3::IfcTransportElementNonFixedTypeEnum(data); - case 1230: return new ::Ifc4x3_rc3::IfcTransportElementType(data); - case 1232: return new ::Ifc4x3_rc3::IfcTrapeziumProfileDef(data); - case 1233: return new ::Ifc4x3_rc3::IfcTriangulatedFaceSet(data); - case 1234: return new ::Ifc4x3_rc3::IfcTriangulatedIrregularNetwork(data); - case 1235: return new ::Ifc4x3_rc3::IfcTrimmedCurve(data); - case 1236: return new ::Ifc4x3_rc3::IfcTrimmingPreference(data); - case 1238: return new ::Ifc4x3_rc3::IfcTShapeProfileDef(data); - case 1239: return new ::Ifc4x3_rc3::IfcTubeBundle(data); - case 1240: return new ::Ifc4x3_rc3::IfcTubeBundleType(data); - case 1241: return new ::Ifc4x3_rc3::IfcTubeBundleTypeEnum(data); - case 1242: return new ::Ifc4x3_rc3::IfcTypeObject(data); - case 1243: return new ::Ifc4x3_rc3::IfcTypeProcess(data); - case 1244: return new ::Ifc4x3_rc3::IfcTypeProduct(data); - case 1245: return new ::Ifc4x3_rc3::IfcTypeResource(data); - case 1247: return new ::Ifc4x3_rc3::IfcUnitaryControlElement(data); - case 1248: return new ::Ifc4x3_rc3::IfcUnitaryControlElementType(data); - case 1249: return new ::Ifc4x3_rc3::IfcUnitaryControlElementTypeEnum(data); - case 1250: return new ::Ifc4x3_rc3::IfcUnitaryEquipment(data); - case 1251: return new ::Ifc4x3_rc3::IfcUnitaryEquipmentType(data); - case 1252: return new ::Ifc4x3_rc3::IfcUnitaryEquipmentTypeEnum(data); - case 1253: return new ::Ifc4x3_rc3::IfcUnitAssignment(data); - case 1254: return new ::Ifc4x3_rc3::IfcUnitEnum(data); - case 1255: return new ::Ifc4x3_rc3::IfcURIReference(data); - case 1256: return new ::Ifc4x3_rc3::IfcUShapeProfileDef(data); - case 1258: return new ::Ifc4x3_rc3::IfcValve(data); - case 1259: return new ::Ifc4x3_rc3::IfcValveType(data); - case 1260: return new ::Ifc4x3_rc3::IfcValveTypeEnum(data); - case 1261: return new ::Ifc4x3_rc3::IfcVaporPermeabilityMeasure(data); - case 1262: return new ::Ifc4x3_rc3::IfcVector(data); - case 1264: return new ::Ifc4x3_rc3::IfcVertex(data); - case 1265: return new ::Ifc4x3_rc3::IfcVertexLoop(data); - case 1266: return new ::Ifc4x3_rc3::IfcVertexPoint(data); - case 1267: return new ::Ifc4x3_rc3::IfcVibrationDamper(data); - case 1268: return new ::Ifc4x3_rc3::IfcVibrationDamperType(data); - case 1269: return new ::Ifc4x3_rc3::IfcVibrationDamperTypeEnum(data); - case 1270: return new ::Ifc4x3_rc3::IfcVibrationIsolator(data); - case 1271: return new ::Ifc4x3_rc3::IfcVibrationIsolatorType(data); - case 1272: return new ::Ifc4x3_rc3::IfcVibrationIsolatorTypeEnum(data); - case 1273: return new ::Ifc4x3_rc3::IfcVienneseBend(data); - case 1274: return new ::Ifc4x3_rc3::IfcVirtualElement(data); - case 1275: return new ::Ifc4x3_rc3::IfcVirtualGridIntersection(data); - case 1276: return new ::Ifc4x3_rc3::IfcVoidingFeature(data); - case 1277: return new ::Ifc4x3_rc3::IfcVoidingFeatureTypeEnum(data); - case 1278: return new ::Ifc4x3_rc3::IfcVoidStratum(data); - case 1279: return new ::Ifc4x3_rc3::IfcVolumeMeasure(data); - case 1280: return new ::Ifc4x3_rc3::IfcVolumetricFlowRateMeasure(data); - case 1281: return new ::Ifc4x3_rc3::IfcWall(data); - case 1282: return new ::Ifc4x3_rc3::IfcWallElementedCase(data); - case 1283: return new ::Ifc4x3_rc3::IfcWallStandardCase(data); - case 1284: return new ::Ifc4x3_rc3::IfcWallType(data); - case 1285: return new ::Ifc4x3_rc3::IfcWallTypeEnum(data); - case 1286: return new ::Ifc4x3_rc3::IfcWarpingConstantMeasure(data); - case 1287: return new ::Ifc4x3_rc3::IfcWarpingMomentMeasure(data); - case 1289: return new ::Ifc4x3_rc3::IfcWasteTerminal(data); - case 1290: return new ::Ifc4x3_rc3::IfcWasteTerminalType(data); - case 1291: return new ::Ifc4x3_rc3::IfcWasteTerminalTypeEnum(data); - case 1292: return new ::Ifc4x3_rc3::IfcWaterStratum(data); - case 1293: return new ::Ifc4x3_rc3::IfcWindow(data); - case 1294: return new ::Ifc4x3_rc3::IfcWindowLiningProperties(data); - case 1295: return new ::Ifc4x3_rc3::IfcWindowPanelOperationEnum(data); - case 1296: return new ::Ifc4x3_rc3::IfcWindowPanelPositionEnum(data); - case 1297: return new ::Ifc4x3_rc3::IfcWindowPanelProperties(data); - case 1298: return new ::Ifc4x3_rc3::IfcWindowStandardCase(data); - case 1299: return new ::Ifc4x3_rc3::IfcWindowStyle(data); - case 1300: return new ::Ifc4x3_rc3::IfcWindowStyleConstructionEnum(data); - case 1301: return new ::Ifc4x3_rc3::IfcWindowStyleOperationEnum(data); - case 1302: return new ::Ifc4x3_rc3::IfcWindowType(data); - case 1303: return new ::Ifc4x3_rc3::IfcWindowTypeEnum(data); - case 1304: return new ::Ifc4x3_rc3::IfcWindowTypePartitioningEnum(data); - case 1305: return new ::Ifc4x3_rc3::IfcWorkCalendar(data); - case 1306: return new ::Ifc4x3_rc3::IfcWorkCalendarTypeEnum(data); - case 1307: return new ::Ifc4x3_rc3::IfcWorkControl(data); - case 1308: return new ::Ifc4x3_rc3::IfcWorkPlan(data); - case 1309: return new ::Ifc4x3_rc3::IfcWorkPlanTypeEnum(data); - case 1310: return new ::Ifc4x3_rc3::IfcWorkSchedule(data); - case 1311: return new ::Ifc4x3_rc3::IfcWorkScheduleTypeEnum(data); - case 1312: return new ::Ifc4x3_rc3::IfcWorkTime(data); - case 1313: return new ::Ifc4x3_rc3::IfcZone(data); - case 1314: return new ::Ifc4x3_rc3::IfcZShapeProfileDef(data); + case 310: return new ::Ifc4x3_rc3::IfcDirectrixDerivedReferenceSweptAreaSolid(data); + case 311: return new ::Ifc4x3_rc3::IfcDirectrixDistanceSweptAreaSolid(data); + case 312: return new ::Ifc4x3_rc3::IfcDiscreteAccessory(data); + case 313: return new ::Ifc4x3_rc3::IfcDiscreteAccessoryType(data); + case 314: return new ::Ifc4x3_rc3::IfcDiscreteAccessoryTypeEnum(data); + case 315: return new ::Ifc4x3_rc3::IfcDistributionBoard(data); + case 316: return new ::Ifc4x3_rc3::IfcDistributionBoardType(data); + case 317: return new ::Ifc4x3_rc3::IfcDistributionBoardTypeEnum(data); + case 318: return new ::Ifc4x3_rc3::IfcDistributionChamberElement(data); + case 319: return new ::Ifc4x3_rc3::IfcDistributionChamberElementType(data); + case 320: return new ::Ifc4x3_rc3::IfcDistributionChamberElementTypeEnum(data); + case 321: return new ::Ifc4x3_rc3::IfcDistributionCircuit(data); + case 322: return new ::Ifc4x3_rc3::IfcDistributionControlElement(data); + case 323: return new ::Ifc4x3_rc3::IfcDistributionControlElementType(data); + case 324: return new ::Ifc4x3_rc3::IfcDistributionElement(data); + case 325: return new ::Ifc4x3_rc3::IfcDistributionElementType(data); + case 326: return new ::Ifc4x3_rc3::IfcDistributionFlowElement(data); + case 327: return new ::Ifc4x3_rc3::IfcDistributionFlowElementType(data); + case 328: return new ::Ifc4x3_rc3::IfcDistributionPort(data); + case 329: return new ::Ifc4x3_rc3::IfcDistributionPortTypeEnum(data); + case 330: return new ::Ifc4x3_rc3::IfcDistributionSystem(data); + case 331: return new ::Ifc4x3_rc3::IfcDistributionSystemEnum(data); + case 332: return new ::Ifc4x3_rc3::IfcDocumentConfidentialityEnum(data); + case 333: return new ::Ifc4x3_rc3::IfcDocumentInformation(data); + case 334: return new ::Ifc4x3_rc3::IfcDocumentInformationRelationship(data); + case 335: return new ::Ifc4x3_rc3::IfcDocumentReference(data); + case 337: return new ::Ifc4x3_rc3::IfcDocumentStatusEnum(data); + case 338: return new ::Ifc4x3_rc3::IfcDoor(data); + case 339: return new ::Ifc4x3_rc3::IfcDoorLiningProperties(data); + case 340: return new ::Ifc4x3_rc3::IfcDoorPanelOperationEnum(data); + case 341: return new ::Ifc4x3_rc3::IfcDoorPanelPositionEnum(data); + case 342: return new ::Ifc4x3_rc3::IfcDoorPanelProperties(data); + case 343: return new ::Ifc4x3_rc3::IfcDoorStandardCase(data); + case 344: return new ::Ifc4x3_rc3::IfcDoorStyle(data); + case 345: return new ::Ifc4x3_rc3::IfcDoorStyleConstructionEnum(data); + case 346: return new ::Ifc4x3_rc3::IfcDoorStyleOperationEnum(data); + case 347: return new ::Ifc4x3_rc3::IfcDoorType(data); + case 348: return new ::Ifc4x3_rc3::IfcDoorTypeEnum(data); + case 349: return new ::Ifc4x3_rc3::IfcDoorTypeOperationEnum(data); + case 350: return new ::Ifc4x3_rc3::IfcDoseEquivalentMeasure(data); + case 351: return new ::Ifc4x3_rc3::IfcDraughtingPreDefinedColour(data); + case 352: return new ::Ifc4x3_rc3::IfcDraughtingPreDefinedCurveFont(data); + case 353: return new ::Ifc4x3_rc3::IfcDuctFitting(data); + case 354: return new ::Ifc4x3_rc3::IfcDuctFittingType(data); + case 355: return new ::Ifc4x3_rc3::IfcDuctFittingTypeEnum(data); + case 356: return new ::Ifc4x3_rc3::IfcDuctSegment(data); + case 357: return new ::Ifc4x3_rc3::IfcDuctSegmentType(data); + case 358: return new ::Ifc4x3_rc3::IfcDuctSegmentTypeEnum(data); + case 359: return new ::Ifc4x3_rc3::IfcDuctSilencer(data); + case 360: return new ::Ifc4x3_rc3::IfcDuctSilencerType(data); + case 361: return new ::Ifc4x3_rc3::IfcDuctSilencerTypeEnum(data); + case 362: return new ::Ifc4x3_rc3::IfcDuration(data); + case 363: return new ::Ifc4x3_rc3::IfcDynamicViscosityMeasure(data); + case 364: return new ::Ifc4x3_rc3::IfcEarthworksCut(data); + case 365: return new ::Ifc4x3_rc3::IfcEarthworksCutTypeEnum(data); + case 366: return new ::Ifc4x3_rc3::IfcEarthworksElement(data); + case 367: return new ::Ifc4x3_rc3::IfcEarthworksFill(data); + case 368: return new ::Ifc4x3_rc3::IfcEarthworksFillTypeEnum(data); + case 369: return new ::Ifc4x3_rc3::IfcEdge(data); + case 370: return new ::Ifc4x3_rc3::IfcEdgeCurve(data); + case 371: return new ::Ifc4x3_rc3::IfcEdgeLoop(data); + case 372: return new ::Ifc4x3_rc3::IfcElectricAppliance(data); + case 373: return new ::Ifc4x3_rc3::IfcElectricApplianceType(data); + case 374: return new ::Ifc4x3_rc3::IfcElectricApplianceTypeEnum(data); + case 375: return new ::Ifc4x3_rc3::IfcElectricCapacitanceMeasure(data); + case 376: return new ::Ifc4x3_rc3::IfcElectricChargeMeasure(data); + case 377: return new ::Ifc4x3_rc3::IfcElectricConductanceMeasure(data); + case 378: return new ::Ifc4x3_rc3::IfcElectricCurrentMeasure(data); + case 379: return new ::Ifc4x3_rc3::IfcElectricDistributionBoard(data); + case 380: return new ::Ifc4x3_rc3::IfcElectricDistributionBoardType(data); + case 381: return new ::Ifc4x3_rc3::IfcElectricDistributionBoardTypeEnum(data); + case 382: return new ::Ifc4x3_rc3::IfcElectricFlowStorageDevice(data); + case 383: return new ::Ifc4x3_rc3::IfcElectricFlowStorageDeviceType(data); + case 384: return new ::Ifc4x3_rc3::IfcElectricFlowStorageDeviceTypeEnum(data); + case 385: return new ::Ifc4x3_rc3::IfcElectricFlowTreatmentDevice(data); + case 386: return new ::Ifc4x3_rc3::IfcElectricFlowTreatmentDeviceType(data); + case 387: return new ::Ifc4x3_rc3::IfcElectricFlowTreatmentDeviceTypeEnum(data); + case 388: return new ::Ifc4x3_rc3::IfcElectricGenerator(data); + case 389: return new ::Ifc4x3_rc3::IfcElectricGeneratorType(data); + case 390: return new ::Ifc4x3_rc3::IfcElectricGeneratorTypeEnum(data); + case 391: return new ::Ifc4x3_rc3::IfcElectricMotor(data); + case 392: return new ::Ifc4x3_rc3::IfcElectricMotorType(data); + case 393: return new ::Ifc4x3_rc3::IfcElectricMotorTypeEnum(data); + case 394: return new ::Ifc4x3_rc3::IfcElectricResistanceMeasure(data); + case 395: return new ::Ifc4x3_rc3::IfcElectricTimeControl(data); + case 396: return new ::Ifc4x3_rc3::IfcElectricTimeControlType(data); + case 397: return new ::Ifc4x3_rc3::IfcElectricTimeControlTypeEnum(data); + case 398: return new ::Ifc4x3_rc3::IfcElectricVoltageMeasure(data); + case 399: return new ::Ifc4x3_rc3::IfcElement(data); + case 400: return new ::Ifc4x3_rc3::IfcElementarySurface(data); + case 401: return new ::Ifc4x3_rc3::IfcElementAssembly(data); + case 402: return new ::Ifc4x3_rc3::IfcElementAssemblyType(data); + case 403: return new ::Ifc4x3_rc3::IfcElementAssemblyTypeEnum(data); + case 404: return new ::Ifc4x3_rc3::IfcElementComponent(data); + case 405: return new ::Ifc4x3_rc3::IfcElementComponentType(data); + case 406: return new ::Ifc4x3_rc3::IfcElementCompositionEnum(data); + case 407: return new ::Ifc4x3_rc3::IfcElementQuantity(data); + case 408: return new ::Ifc4x3_rc3::IfcElementType(data); + case 409: return new ::Ifc4x3_rc3::IfcEllipse(data); + case 410: return new ::Ifc4x3_rc3::IfcEllipseProfileDef(data); + case 411: return new ::Ifc4x3_rc3::IfcEnergyConversionDevice(data); + case 412: return new ::Ifc4x3_rc3::IfcEnergyConversionDeviceType(data); + case 413: return new ::Ifc4x3_rc3::IfcEnergyMeasure(data); + case 414: return new ::Ifc4x3_rc3::IfcEngine(data); + case 415: return new ::Ifc4x3_rc3::IfcEngineType(data); + case 416: return new ::Ifc4x3_rc3::IfcEngineTypeEnum(data); + case 417: return new ::Ifc4x3_rc3::IfcEvaporativeCooler(data); + case 418: return new ::Ifc4x3_rc3::IfcEvaporativeCoolerType(data); + case 419: return new ::Ifc4x3_rc3::IfcEvaporativeCoolerTypeEnum(data); + case 420: return new ::Ifc4x3_rc3::IfcEvaporator(data); + case 421: return new ::Ifc4x3_rc3::IfcEvaporatorType(data); + case 422: return new ::Ifc4x3_rc3::IfcEvaporatorTypeEnum(data); + case 423: return new ::Ifc4x3_rc3::IfcEvent(data); + case 424: return new ::Ifc4x3_rc3::IfcEventTime(data); + case 425: return new ::Ifc4x3_rc3::IfcEventTriggerTypeEnum(data); + case 426: return new ::Ifc4x3_rc3::IfcEventType(data); + case 427: return new ::Ifc4x3_rc3::IfcEventTypeEnum(data); + case 428: return new ::Ifc4x3_rc3::IfcExtendedProperties(data); + case 429: return new ::Ifc4x3_rc3::IfcExternalInformation(data); + case 430: return new ::Ifc4x3_rc3::IfcExternallyDefinedHatchStyle(data); + case 431: return new ::Ifc4x3_rc3::IfcExternallyDefinedSurfaceStyle(data); + case 432: return new ::Ifc4x3_rc3::IfcExternallyDefinedTextFont(data); + case 433: return new ::Ifc4x3_rc3::IfcExternalReference(data); + case 434: return new ::Ifc4x3_rc3::IfcExternalReferenceRelationship(data); + case 435: return new ::Ifc4x3_rc3::IfcExternalSpatialElement(data); + case 436: return new ::Ifc4x3_rc3::IfcExternalSpatialElementTypeEnum(data); + case 437: return new ::Ifc4x3_rc3::IfcExternalSpatialStructureElement(data); + case 438: return new ::Ifc4x3_rc3::IfcExtrudedAreaSolid(data); + case 439: return new ::Ifc4x3_rc3::IfcExtrudedAreaSolidTapered(data); + case 440: return new ::Ifc4x3_rc3::IfcFace(data); + case 441: return new ::Ifc4x3_rc3::IfcFaceBasedSurfaceModel(data); + case 442: return new ::Ifc4x3_rc3::IfcFaceBound(data); + case 443: return new ::Ifc4x3_rc3::IfcFaceOuterBound(data); + case 444: return new ::Ifc4x3_rc3::IfcFaceSurface(data); + case 445: return new ::Ifc4x3_rc3::IfcFacetedBrep(data); + case 446: return new ::Ifc4x3_rc3::IfcFacetedBrepWithVoids(data); + case 447: return new ::Ifc4x3_rc3::IfcFacility(data); + case 448: return new ::Ifc4x3_rc3::IfcFacilityPart(data); + case 449: return new ::Ifc4x3_rc3::IfcFacilityPartCommonTypeEnum(data); + case 451: return new ::Ifc4x3_rc3::IfcFacilityUsageEnum(data); + case 452: return new ::Ifc4x3_rc3::IfcFailureConnectionCondition(data); + case 453: return new ::Ifc4x3_rc3::IfcFan(data); + case 454: return new ::Ifc4x3_rc3::IfcFanType(data); + case 455: return new ::Ifc4x3_rc3::IfcFanTypeEnum(data); + case 456: return new ::Ifc4x3_rc3::IfcFastener(data); + case 457: return new ::Ifc4x3_rc3::IfcFastenerType(data); + case 458: return new ::Ifc4x3_rc3::IfcFastenerTypeEnum(data); + case 459: return new ::Ifc4x3_rc3::IfcFeatureElement(data); + case 460: return new ::Ifc4x3_rc3::IfcFeatureElementAddition(data); + case 461: return new ::Ifc4x3_rc3::IfcFeatureElementSubtraction(data); + case 462: return new ::Ifc4x3_rc3::IfcFillAreaStyle(data); + case 463: return new ::Ifc4x3_rc3::IfcFillAreaStyleHatching(data); + case 464: return new ::Ifc4x3_rc3::IfcFillAreaStyleTiles(data); + case 466: return new ::Ifc4x3_rc3::IfcFilter(data); + case 467: return new ::Ifc4x3_rc3::IfcFilterType(data); + case 468: return new ::Ifc4x3_rc3::IfcFilterTypeEnum(data); + case 469: return new ::Ifc4x3_rc3::IfcFireSuppressionTerminal(data); + case 470: return new ::Ifc4x3_rc3::IfcFireSuppressionTerminalType(data); + case 471: return new ::Ifc4x3_rc3::IfcFireSuppressionTerminalTypeEnum(data); + case 472: return new ::Ifc4x3_rc3::IfcFixedReferenceSweptAreaSolid(data); + case 473: return new ::Ifc4x3_rc3::IfcFlowController(data); + case 474: return new ::Ifc4x3_rc3::IfcFlowControllerType(data); + case 475: return new ::Ifc4x3_rc3::IfcFlowDirectionEnum(data); + case 476: return new ::Ifc4x3_rc3::IfcFlowFitting(data); + case 477: return new ::Ifc4x3_rc3::IfcFlowFittingType(data); + case 478: return new ::Ifc4x3_rc3::IfcFlowInstrument(data); + case 479: return new ::Ifc4x3_rc3::IfcFlowInstrumentType(data); + case 480: return new ::Ifc4x3_rc3::IfcFlowInstrumentTypeEnum(data); + case 481: return new ::Ifc4x3_rc3::IfcFlowMeter(data); + case 482: return new ::Ifc4x3_rc3::IfcFlowMeterType(data); + case 483: return new ::Ifc4x3_rc3::IfcFlowMeterTypeEnum(data); + case 484: return new ::Ifc4x3_rc3::IfcFlowMovingDevice(data); + case 485: return new ::Ifc4x3_rc3::IfcFlowMovingDeviceType(data); + case 486: return new ::Ifc4x3_rc3::IfcFlowSegment(data); + case 487: return new ::Ifc4x3_rc3::IfcFlowSegmentType(data); + case 488: return new ::Ifc4x3_rc3::IfcFlowStorageDevice(data); + case 489: return new ::Ifc4x3_rc3::IfcFlowStorageDeviceType(data); + case 490: return new ::Ifc4x3_rc3::IfcFlowTerminal(data); + case 491: return new ::Ifc4x3_rc3::IfcFlowTerminalType(data); + case 492: return new ::Ifc4x3_rc3::IfcFlowTreatmentDevice(data); + case 493: return new ::Ifc4x3_rc3::IfcFlowTreatmentDeviceType(data); + case 494: return new ::Ifc4x3_rc3::IfcFontStyle(data); + case 495: return new ::Ifc4x3_rc3::IfcFontVariant(data); + case 496: return new ::Ifc4x3_rc3::IfcFontWeight(data); + case 497: return new ::Ifc4x3_rc3::IfcFooting(data); + case 498: return new ::Ifc4x3_rc3::IfcFootingType(data); + case 499: return new ::Ifc4x3_rc3::IfcFootingTypeEnum(data); + case 500: return new ::Ifc4x3_rc3::IfcForceMeasure(data); + case 501: return new ::Ifc4x3_rc3::IfcFrequencyMeasure(data); + case 502: return new ::Ifc4x3_rc3::IfcFurnishingElement(data); + case 503: return new ::Ifc4x3_rc3::IfcFurnishingElementType(data); + case 504: return new ::Ifc4x3_rc3::IfcFurniture(data); + case 505: return new ::Ifc4x3_rc3::IfcFurnitureType(data); + case 506: return new ::Ifc4x3_rc3::IfcFurnitureTypeEnum(data); + case 507: return new ::Ifc4x3_rc3::IfcGeographicElement(data); + case 508: return new ::Ifc4x3_rc3::IfcGeographicElementType(data); + case 509: return new ::Ifc4x3_rc3::IfcGeographicElementTypeEnum(data); + case 510: return new ::Ifc4x3_rc3::IfcGeometricCurveSet(data); + case 511: return new ::Ifc4x3_rc3::IfcGeometricProjectionEnum(data); + case 512: return new ::Ifc4x3_rc3::IfcGeometricRepresentationContext(data); + case 513: return new ::Ifc4x3_rc3::IfcGeometricRepresentationItem(data); + case 514: return new ::Ifc4x3_rc3::IfcGeometricRepresentationSubContext(data); + case 515: return new ::Ifc4x3_rc3::IfcGeometricSet(data); + case 517: return new ::Ifc4x3_rc3::IfcGeomodel(data); + case 518: return new ::Ifc4x3_rc3::IfcGeoslice(data); + case 519: return new ::Ifc4x3_rc3::IfcGeotechnicalAssembly(data); + case 520: return new ::Ifc4x3_rc3::IfcGeotechnicalElement(data); + case 521: return new ::Ifc4x3_rc3::IfcGeotechnicalStratum(data); + case 522: return new ::Ifc4x3_rc3::IfcGloballyUniqueId(data); + case 523: return new ::Ifc4x3_rc3::IfcGlobalOrLocalEnum(data); + case 524: return new ::Ifc4x3_rc3::IfcGradientCurve(data); + case 525: return new ::Ifc4x3_rc3::IfcGrid(data); + case 526: return new ::Ifc4x3_rc3::IfcGridAxis(data); + case 527: return new ::Ifc4x3_rc3::IfcGridPlacement(data); + case 529: return new ::Ifc4x3_rc3::IfcGridTypeEnum(data); + case 530: return new ::Ifc4x3_rc3::IfcGroup(data); + case 531: return new ::Ifc4x3_rc3::IfcHalfSpaceSolid(data); + case 533: return new ::Ifc4x3_rc3::IfcHeatExchanger(data); + case 534: return new ::Ifc4x3_rc3::IfcHeatExchangerType(data); + case 535: return new ::Ifc4x3_rc3::IfcHeatExchangerTypeEnum(data); + case 536: return new ::Ifc4x3_rc3::IfcHeatFluxDensityMeasure(data); + case 537: return new ::Ifc4x3_rc3::IfcHeatingValueMeasure(data); + case 538: return new ::Ifc4x3_rc3::IfcHumidifier(data); + case 539: return new ::Ifc4x3_rc3::IfcHumidifierType(data); + case 540: return new ::Ifc4x3_rc3::IfcHumidifierTypeEnum(data); + case 541: return new ::Ifc4x3_rc3::IfcIdentifier(data); + case 542: return new ::Ifc4x3_rc3::IfcIlluminanceMeasure(data); + case 543: return new ::Ifc4x3_rc3::IfcImageTexture(data); + case 544: return new ::Ifc4x3_rc3::IfcImpactProtectionDevice(data); + case 545: return new ::Ifc4x3_rc3::IfcImpactProtectionDeviceType(data); + case 546: return new ::Ifc4x3_rc3::IfcImpactProtectionDeviceTypeEnum(data); + case 548: return new ::Ifc4x3_rc3::IfcInclinedReferenceSweptAreaSolid(data); + case 549: return new ::Ifc4x3_rc3::IfcIndexedColourMap(data); + case 550: return new ::Ifc4x3_rc3::IfcIndexedPolyCurve(data); + case 551: return new ::Ifc4x3_rc3::IfcIndexedPolygonalFace(data); + case 552: return new ::Ifc4x3_rc3::IfcIndexedPolygonalFaceWithVoids(data); + case 553: return new ::Ifc4x3_rc3::IfcIndexedTextureMap(data); + case 554: return new ::Ifc4x3_rc3::IfcIndexedTriangleTextureMap(data); + case 555: return new ::Ifc4x3_rc3::IfcInductanceMeasure(data); + case 556: return new ::Ifc4x3_rc3::IfcInteger(data); + case 557: return new ::Ifc4x3_rc3::IfcIntegerCountRateMeasure(data); + case 558: return new ::Ifc4x3_rc3::IfcInterceptor(data); + case 559: return new ::Ifc4x3_rc3::IfcInterceptorType(data); + case 560: return new ::Ifc4x3_rc3::IfcInterceptorTypeEnum(data); + case 562: return new ::Ifc4x3_rc3::IfcInternalOrExternalEnum(data); + case 563: return new ::Ifc4x3_rc3::IfcIntersectionCurve(data); + case 564: return new ::Ifc4x3_rc3::IfcInventory(data); + case 565: return new ::Ifc4x3_rc3::IfcInventoryTypeEnum(data); + case 566: return new ::Ifc4x3_rc3::IfcIonConcentrationMeasure(data); + case 567: return new ::Ifc4x3_rc3::IfcIrregularTimeSeries(data); + case 568: return new ::Ifc4x3_rc3::IfcIrregularTimeSeriesValue(data); + case 569: return new ::Ifc4x3_rc3::IfcIShapeProfileDef(data); + case 570: return new ::Ifc4x3_rc3::IfcIsothermalMoistureCapacityMeasure(data); + case 571: return new ::Ifc4x3_rc3::IfcJunctionBox(data); + case 572: return new ::Ifc4x3_rc3::IfcJunctionBoxType(data); + case 573: return new ::Ifc4x3_rc3::IfcJunctionBoxTypeEnum(data); + case 574: return new ::Ifc4x3_rc3::IfcKerb(data); + case 575: return new ::Ifc4x3_rc3::IfcKerbType(data); + case 576: return new ::Ifc4x3_rc3::IfcKinematicViscosityMeasure(data); + case 577: return new ::Ifc4x3_rc3::IfcKnotType(data); + case 578: return new ::Ifc4x3_rc3::IfcLabel(data); + case 579: return new ::Ifc4x3_rc3::IfcLaborResource(data); + case 580: return new ::Ifc4x3_rc3::IfcLaborResourceType(data); + case 581: return new ::Ifc4x3_rc3::IfcLaborResourceTypeEnum(data); + case 582: return new ::Ifc4x3_rc3::IfcLagTime(data); + case 583: return new ::Ifc4x3_rc3::IfcLamp(data); + case 584: return new ::Ifc4x3_rc3::IfcLampType(data); + case 585: return new ::Ifc4x3_rc3::IfcLampTypeEnum(data); + case 586: return new ::Ifc4x3_rc3::IfcLanguageId(data); + case 588: return new ::Ifc4x3_rc3::IfcLayerSetDirectionEnum(data); + case 589: return new ::Ifc4x3_rc3::IfcLengthMeasure(data); + case 590: return new ::Ifc4x3_rc3::IfcLibraryInformation(data); + case 591: return new ::Ifc4x3_rc3::IfcLibraryReference(data); + case 593: return new ::Ifc4x3_rc3::IfcLightDistributionCurveEnum(data); + case 594: return new ::Ifc4x3_rc3::IfcLightDistributionData(data); + case 596: return new ::Ifc4x3_rc3::IfcLightEmissionSourceEnum(data); + case 597: return new ::Ifc4x3_rc3::IfcLightFixture(data); + case 598: return new ::Ifc4x3_rc3::IfcLightFixtureType(data); + case 599: return new ::Ifc4x3_rc3::IfcLightFixtureTypeEnum(data); + case 600: return new ::Ifc4x3_rc3::IfcLightIntensityDistribution(data); + case 601: return new ::Ifc4x3_rc3::IfcLightSource(data); + case 602: return new ::Ifc4x3_rc3::IfcLightSourceAmbient(data); + case 603: return new ::Ifc4x3_rc3::IfcLightSourceDirectional(data); + case 604: return new ::Ifc4x3_rc3::IfcLightSourceGoniometric(data); + case 605: return new ::Ifc4x3_rc3::IfcLightSourcePositional(data); + case 606: return new ::Ifc4x3_rc3::IfcLightSourceSpot(data); + case 607: return new ::Ifc4x3_rc3::IfcLine(data); + case 608: return new ::Ifc4x3_rc3::IfcLinearElement(data); + case 609: return new ::Ifc4x3_rc3::IfcLinearForceMeasure(data); + case 610: return new ::Ifc4x3_rc3::IfcLinearMomentMeasure(data); + case 611: return new ::Ifc4x3_rc3::IfcLinearPlacement(data); + case 612: return new ::Ifc4x3_rc3::IfcLinearPositioningElement(data); + case 613: return new ::Ifc4x3_rc3::IfcLinearStiffnessMeasure(data); + case 614: return new ::Ifc4x3_rc3::IfcLinearVelocityMeasure(data); + case 615: return new ::Ifc4x3_rc3::IfcLineIndex(data); + case 616: return new ::Ifc4x3_rc3::IfcLiquidTerminal(data); + case 617: return new ::Ifc4x3_rc3::IfcLiquidTerminalType(data); + case 618: return new ::Ifc4x3_rc3::IfcLiquidTerminalTypeEnum(data); + case 619: return new ::Ifc4x3_rc3::IfcLoadGroupTypeEnum(data); + case 620: return new ::Ifc4x3_rc3::IfcLocalPlacement(data); + case 621: return new ::Ifc4x3_rc3::IfcLogical(data); + case 622: return new ::Ifc4x3_rc3::IfcLogicalOperatorEnum(data); + case 623: return new ::Ifc4x3_rc3::IfcLoop(data); + case 624: return new ::Ifc4x3_rc3::IfcLShapeProfileDef(data); + case 625: return new ::Ifc4x3_rc3::IfcLuminousFluxMeasure(data); + case 626: return new ::Ifc4x3_rc3::IfcLuminousIntensityDistributionMeasure(data); + case 627: return new ::Ifc4x3_rc3::IfcLuminousIntensityMeasure(data); + case 628: return new ::Ifc4x3_rc3::IfcMagneticFluxDensityMeasure(data); + case 629: return new ::Ifc4x3_rc3::IfcMagneticFluxMeasure(data); + case 630: return new ::Ifc4x3_rc3::IfcManifoldSolidBrep(data); + case 631: return new ::Ifc4x3_rc3::IfcMapConversion(data); + case 632: return new ::Ifc4x3_rc3::IfcMappedItem(data); + case 633: return new ::Ifc4x3_rc3::IfcMarineFacility(data); + case 634: return new ::Ifc4x3_rc3::IfcMarineFacilityTypeEnum(data); + case 635: return new ::Ifc4x3_rc3::IfcMarinePartTypeEnum(data); + case 636: return new ::Ifc4x3_rc3::IfcMassDensityMeasure(data); + case 637: return new ::Ifc4x3_rc3::IfcMassFlowRateMeasure(data); + case 638: return new ::Ifc4x3_rc3::IfcMassMeasure(data); + case 639: return new ::Ifc4x3_rc3::IfcMassPerLengthMeasure(data); + case 640: return new ::Ifc4x3_rc3::IfcMaterial(data); + case 641: return new ::Ifc4x3_rc3::IfcMaterialClassificationRelationship(data); + case 642: return new ::Ifc4x3_rc3::IfcMaterialConstituent(data); + case 643: return new ::Ifc4x3_rc3::IfcMaterialConstituentSet(data); + case 644: return new ::Ifc4x3_rc3::IfcMaterialDefinition(data); + case 645: return new ::Ifc4x3_rc3::IfcMaterialDefinitionRepresentation(data); + case 646: return new ::Ifc4x3_rc3::IfcMaterialLayer(data); + case 647: return new ::Ifc4x3_rc3::IfcMaterialLayerSet(data); + case 648: return new ::Ifc4x3_rc3::IfcMaterialLayerSetUsage(data); + case 649: return new ::Ifc4x3_rc3::IfcMaterialLayerWithOffsets(data); + case 650: return new ::Ifc4x3_rc3::IfcMaterialList(data); + case 651: return new ::Ifc4x3_rc3::IfcMaterialProfile(data); + case 652: return new ::Ifc4x3_rc3::IfcMaterialProfileSet(data); + case 653: return new ::Ifc4x3_rc3::IfcMaterialProfileSetUsage(data); + case 654: return new ::Ifc4x3_rc3::IfcMaterialProfileSetUsageTapering(data); + case 655: return new ::Ifc4x3_rc3::IfcMaterialProfileWithOffsets(data); + case 656: return new ::Ifc4x3_rc3::IfcMaterialProperties(data); + case 657: return new ::Ifc4x3_rc3::IfcMaterialRelationship(data); + case 659: return new ::Ifc4x3_rc3::IfcMaterialUsageDefinition(data); + case 661: return new ::Ifc4x3_rc3::IfcMeasureWithUnit(data); + case 662: return new ::Ifc4x3_rc3::IfcMechanicalFastener(data); + case 663: return new ::Ifc4x3_rc3::IfcMechanicalFastenerType(data); + case 664: return new ::Ifc4x3_rc3::IfcMechanicalFastenerTypeEnum(data); + case 665: return new ::Ifc4x3_rc3::IfcMedicalDevice(data); + case 666: return new ::Ifc4x3_rc3::IfcMedicalDeviceType(data); + case 667: return new ::Ifc4x3_rc3::IfcMedicalDeviceTypeEnum(data); + case 668: return new ::Ifc4x3_rc3::IfcMember(data); + case 669: return new ::Ifc4x3_rc3::IfcMemberStandardCase(data); + case 670: return new ::Ifc4x3_rc3::IfcMemberType(data); + case 671: return new ::Ifc4x3_rc3::IfcMemberTypeEnum(data); + case 672: return new ::Ifc4x3_rc3::IfcMetric(data); + case 674: return new ::Ifc4x3_rc3::IfcMirroredProfileDef(data); + case 675: return new ::Ifc4x3_rc3::IfcMobileTelecommunicationsAppliance(data); + case 676: return new ::Ifc4x3_rc3::IfcMobileTelecommunicationsApplianceType(data); + case 677: return new ::Ifc4x3_rc3::IfcMobileTelecommunicationsApplianceTypeEnum(data); + case 678: return new ::Ifc4x3_rc3::IfcModulusOfElasticityMeasure(data); + case 679: return new ::Ifc4x3_rc3::IfcModulusOfLinearSubgradeReactionMeasure(data); + case 680: return new ::Ifc4x3_rc3::IfcModulusOfRotationalSubgradeReactionMeasure(data); + case 682: return new ::Ifc4x3_rc3::IfcModulusOfSubgradeReactionMeasure(data); + case 685: return new ::Ifc4x3_rc3::IfcMoistureDiffusivityMeasure(data); + case 686: return new ::Ifc4x3_rc3::IfcMolecularWeightMeasure(data); + case 687: return new ::Ifc4x3_rc3::IfcMomentOfInertiaMeasure(data); + case 688: return new ::Ifc4x3_rc3::IfcMonetaryMeasure(data); + case 689: return new ::Ifc4x3_rc3::IfcMonetaryUnit(data); + case 690: return new ::Ifc4x3_rc3::IfcMonthInYearNumber(data); + case 691: return new ::Ifc4x3_rc3::IfcMooringDevice(data); + case 692: return new ::Ifc4x3_rc3::IfcMooringDeviceType(data); + case 693: return new ::Ifc4x3_rc3::IfcMooringDeviceTypeEnum(data); + case 694: return new ::Ifc4x3_rc3::IfcMotorConnection(data); + case 695: return new ::Ifc4x3_rc3::IfcMotorConnectionType(data); + case 696: return new ::Ifc4x3_rc3::IfcMotorConnectionTypeEnum(data); + case 697: return new ::Ifc4x3_rc3::IfcNamedUnit(data); + case 698: return new ::Ifc4x3_rc3::IfcNavigationElement(data); + case 699: return new ::Ifc4x3_rc3::IfcNavigationElementType(data); + case 700: return new ::Ifc4x3_rc3::IfcNavigationElementTypeEnum(data); + case 701: return new ::Ifc4x3_rc3::IfcNonNegativeLengthMeasure(data); + case 702: return new ::Ifc4x3_rc3::IfcNormalisedRatioMeasure(data); + case 703: return new ::Ifc4x3_rc3::IfcNumericMeasure(data); + case 704: return new ::Ifc4x3_rc3::IfcObject(data); + case 705: return new ::Ifc4x3_rc3::IfcObjectDefinition(data); + case 706: return new ::Ifc4x3_rc3::IfcObjective(data); + case 707: return new ::Ifc4x3_rc3::IfcObjectiveEnum(data); + case 708: return new ::Ifc4x3_rc3::IfcObjectPlacement(data); + case 710: return new ::Ifc4x3_rc3::IfcObjectTypeEnum(data); + case 711: return new ::Ifc4x3_rc3::IfcOccupant(data); + case 712: return new ::Ifc4x3_rc3::IfcOccupantTypeEnum(data); + case 713: return new ::Ifc4x3_rc3::IfcOffsetCurve(data); + case 714: return new ::Ifc4x3_rc3::IfcOffsetCurve2D(data); + case 715: return new ::Ifc4x3_rc3::IfcOffsetCurve3D(data); + case 716: return new ::Ifc4x3_rc3::IfcOffsetCurveByDistances(data); + case 717: return new ::Ifc4x3_rc3::IfcOpenCrossProfileDef(data); + case 718: return new ::Ifc4x3_rc3::IfcOpeningElement(data); + case 719: return new ::Ifc4x3_rc3::IfcOpeningElementTypeEnum(data); + case 720: return new ::Ifc4x3_rc3::IfcOpeningStandardCase(data); + case 721: return new ::Ifc4x3_rc3::IfcOpenShell(data); + case 722: return new ::Ifc4x3_rc3::IfcOrganization(data); + case 723: return new ::Ifc4x3_rc3::IfcOrganizationRelationship(data); + case 724: return new ::Ifc4x3_rc3::IfcOrientedEdge(data); + case 725: return new ::Ifc4x3_rc3::IfcOuterBoundaryCurve(data); + case 726: return new ::Ifc4x3_rc3::IfcOutlet(data); + case 727: return new ::Ifc4x3_rc3::IfcOutletType(data); + case 728: return new ::Ifc4x3_rc3::IfcOutletTypeEnum(data); + case 729: return new ::Ifc4x3_rc3::IfcOwnerHistory(data); + case 730: return new ::Ifc4x3_rc3::IfcParameterizedProfileDef(data); + case 731: return new ::Ifc4x3_rc3::IfcParameterValue(data); + case 732: return new ::Ifc4x3_rc3::IfcPath(data); + case 733: return new ::Ifc4x3_rc3::IfcPavement(data); + case 734: return new ::Ifc4x3_rc3::IfcPavementType(data); + case 735: return new ::Ifc4x3_rc3::IfcPavementTypeEnum(data); + case 736: return new ::Ifc4x3_rc3::IfcPcurve(data); + case 737: return new ::Ifc4x3_rc3::IfcPerformanceHistory(data); + case 738: return new ::Ifc4x3_rc3::IfcPerformanceHistoryTypeEnum(data); + case 739: return new ::Ifc4x3_rc3::IfcPermeableCoveringOperationEnum(data); + case 740: return new ::Ifc4x3_rc3::IfcPermeableCoveringProperties(data); + case 741: return new ::Ifc4x3_rc3::IfcPermit(data); + case 742: return new ::Ifc4x3_rc3::IfcPermitTypeEnum(data); + case 743: return new ::Ifc4x3_rc3::IfcPerson(data); + case 744: return new ::Ifc4x3_rc3::IfcPersonAndOrganization(data); + case 745: return new ::Ifc4x3_rc3::IfcPHMeasure(data); + case 746: return new ::Ifc4x3_rc3::IfcPhysicalComplexQuantity(data); + case 747: return new ::Ifc4x3_rc3::IfcPhysicalOrVirtualEnum(data); + case 748: return new ::Ifc4x3_rc3::IfcPhysicalQuantity(data); + case 749: return new ::Ifc4x3_rc3::IfcPhysicalSimpleQuantity(data); + case 750: return new ::Ifc4x3_rc3::IfcPile(data); + case 751: return new ::Ifc4x3_rc3::IfcPileConstructionEnum(data); + case 752: return new ::Ifc4x3_rc3::IfcPileType(data); + case 753: return new ::Ifc4x3_rc3::IfcPileTypeEnum(data); + case 754: return new ::Ifc4x3_rc3::IfcPipeFitting(data); + case 755: return new ::Ifc4x3_rc3::IfcPipeFittingType(data); + case 756: return new ::Ifc4x3_rc3::IfcPipeFittingTypeEnum(data); + case 757: return new ::Ifc4x3_rc3::IfcPipeSegment(data); + case 758: return new ::Ifc4x3_rc3::IfcPipeSegmentType(data); + case 759: return new ::Ifc4x3_rc3::IfcPipeSegmentTypeEnum(data); + case 760: return new ::Ifc4x3_rc3::IfcPixelTexture(data); + case 761: return new ::Ifc4x3_rc3::IfcPlacement(data); + case 762: return new ::Ifc4x3_rc3::IfcPlanarBox(data); + case 763: return new ::Ifc4x3_rc3::IfcPlanarExtent(data); + case 764: return new ::Ifc4x3_rc3::IfcPlanarForceMeasure(data); + case 765: return new ::Ifc4x3_rc3::IfcPlane(data); + case 766: return new ::Ifc4x3_rc3::IfcPlaneAngleMeasure(data); + case 767: return new ::Ifc4x3_rc3::IfcPlant(data); + case 768: return new ::Ifc4x3_rc3::IfcPlate(data); + case 769: return new ::Ifc4x3_rc3::IfcPlateStandardCase(data); + case 770: return new ::Ifc4x3_rc3::IfcPlateType(data); + case 771: return new ::Ifc4x3_rc3::IfcPlateTypeEnum(data); + case 772: return new ::Ifc4x3_rc3::IfcPoint(data); + case 773: return new ::Ifc4x3_rc3::IfcPointByDistanceExpression(data); + case 774: return new ::Ifc4x3_rc3::IfcPointOnCurve(data); + case 775: return new ::Ifc4x3_rc3::IfcPointOnSurface(data); + case 777: return new ::Ifc4x3_rc3::IfcPolygonalBoundedHalfSpace(data); + case 778: return new ::Ifc4x3_rc3::IfcPolygonalFaceSet(data); + case 779: return new ::Ifc4x3_rc3::IfcPolyline(data); + case 780: return new ::Ifc4x3_rc3::IfcPolyLoop(data); + case 781: return new ::Ifc4x3_rc3::IfcPolynomialCurve(data); + case 782: return new ::Ifc4x3_rc3::IfcPort(data); + case 783: return new ::Ifc4x3_rc3::IfcPositioningElement(data); + case 784: return new ::Ifc4x3_rc3::IfcPositiveInteger(data); + case 785: return new ::Ifc4x3_rc3::IfcPositiveLengthMeasure(data); + case 786: return new ::Ifc4x3_rc3::IfcPositivePlaneAngleMeasure(data); + case 787: return new ::Ifc4x3_rc3::IfcPositiveRatioMeasure(data); + case 788: return new ::Ifc4x3_rc3::IfcPostalAddress(data); + case 789: return new ::Ifc4x3_rc3::IfcPowerMeasure(data); + case 790: return new ::Ifc4x3_rc3::IfcPreDefinedColour(data); + case 791: return new ::Ifc4x3_rc3::IfcPreDefinedCurveFont(data); + case 792: return new ::Ifc4x3_rc3::IfcPreDefinedItem(data); + case 793: return new ::Ifc4x3_rc3::IfcPreDefinedProperties(data); + case 794: return new ::Ifc4x3_rc3::IfcPreDefinedPropertySet(data); + case 795: return new ::Ifc4x3_rc3::IfcPreDefinedTextFont(data); + case 796: return new ::Ifc4x3_rc3::IfcPreferredSurfaceCurveRepresentation(data); + case 797: return new ::Ifc4x3_rc3::IfcPresentableText(data); + case 798: return new ::Ifc4x3_rc3::IfcPresentationItem(data); + case 799: return new ::Ifc4x3_rc3::IfcPresentationLayerAssignment(data); + case 800: return new ::Ifc4x3_rc3::IfcPresentationLayerWithStyle(data); + case 801: return new ::Ifc4x3_rc3::IfcPresentationStyle(data); + case 802: return new ::Ifc4x3_rc3::IfcPressureMeasure(data); + case 803: return new ::Ifc4x3_rc3::IfcProcedure(data); + case 804: return new ::Ifc4x3_rc3::IfcProcedureType(data); + case 805: return new ::Ifc4x3_rc3::IfcProcedureTypeEnum(data); + case 806: return new ::Ifc4x3_rc3::IfcProcess(data); + case 808: return new ::Ifc4x3_rc3::IfcProduct(data); + case 809: return new ::Ifc4x3_rc3::IfcProductDefinitionShape(data); + case 810: return new ::Ifc4x3_rc3::IfcProductRepresentation(data); + case 813: return new ::Ifc4x3_rc3::IfcProfileDef(data); + case 814: return new ::Ifc4x3_rc3::IfcProfileProperties(data); + case 815: return new ::Ifc4x3_rc3::IfcProfileTypeEnum(data); + case 816: return new ::Ifc4x3_rc3::IfcProject(data); + case 817: return new ::Ifc4x3_rc3::IfcProjectedCRS(data); + case 818: return new ::Ifc4x3_rc3::IfcProjectedOrTrueLengthEnum(data); + case 819: return new ::Ifc4x3_rc3::IfcProjectionElement(data); + case 820: return new ::Ifc4x3_rc3::IfcProjectionElementTypeEnum(data); + case 821: return new ::Ifc4x3_rc3::IfcProjectLibrary(data); + case 822: return new ::Ifc4x3_rc3::IfcProjectOrder(data); + case 823: return new ::Ifc4x3_rc3::IfcProjectOrderTypeEnum(data); + case 824: return new ::Ifc4x3_rc3::IfcProperty(data); + case 825: return new ::Ifc4x3_rc3::IfcPropertyAbstraction(data); + case 826: return new ::Ifc4x3_rc3::IfcPropertyBoundedValue(data); + case 827: return new ::Ifc4x3_rc3::IfcPropertyDefinition(data); + case 828: return new ::Ifc4x3_rc3::IfcPropertyDependencyRelationship(data); + case 829: return new ::Ifc4x3_rc3::IfcPropertyEnumeratedValue(data); + case 830: return new ::Ifc4x3_rc3::IfcPropertyEnumeration(data); + case 831: return new ::Ifc4x3_rc3::IfcPropertyListValue(data); + case 832: return new ::Ifc4x3_rc3::IfcPropertyReferenceValue(data); + case 833: return new ::Ifc4x3_rc3::IfcPropertySet(data); + case 834: return new ::Ifc4x3_rc3::IfcPropertySetDefinition(data); + case 836: return new ::Ifc4x3_rc3::IfcPropertySetDefinitionSet(data); + case 837: return new ::Ifc4x3_rc3::IfcPropertySetTemplate(data); + case 838: return new ::Ifc4x3_rc3::IfcPropertySetTemplateTypeEnum(data); + case 839: return new ::Ifc4x3_rc3::IfcPropertySingleValue(data); + case 840: return new ::Ifc4x3_rc3::IfcPropertyTableValue(data); + case 841: return new ::Ifc4x3_rc3::IfcPropertyTemplate(data); + case 842: return new ::Ifc4x3_rc3::IfcPropertyTemplateDefinition(data); + case 843: return new ::Ifc4x3_rc3::IfcProtectiveDevice(data); + case 844: return new ::Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnit(data); + case 845: return new ::Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnitType(data); + case 846: return new ::Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnitTypeEnum(data); + case 847: return new ::Ifc4x3_rc3::IfcProtectiveDeviceType(data); + case 848: return new ::Ifc4x3_rc3::IfcProtectiveDeviceTypeEnum(data); + case 849: return new ::Ifc4x3_rc3::IfcProxy(data); + case 850: return new ::Ifc4x3_rc3::IfcPump(data); + case 851: return new ::Ifc4x3_rc3::IfcPumpType(data); + case 852: return new ::Ifc4x3_rc3::IfcPumpTypeEnum(data); + case 853: return new ::Ifc4x3_rc3::IfcQuantityArea(data); + case 854: return new ::Ifc4x3_rc3::IfcQuantityCount(data); + case 855: return new ::Ifc4x3_rc3::IfcQuantityLength(data); + case 856: return new ::Ifc4x3_rc3::IfcQuantitySet(data); + case 857: return new ::Ifc4x3_rc3::IfcQuantityTime(data); + case 858: return new ::Ifc4x3_rc3::IfcQuantityVolume(data); + case 859: return new ::Ifc4x3_rc3::IfcQuantityWeight(data); + case 860: return new ::Ifc4x3_rc3::IfcRadioActivityMeasure(data); + case 861: return new ::Ifc4x3_rc3::IfcRail(data); + case 862: return new ::Ifc4x3_rc3::IfcRailing(data); + case 863: return new ::Ifc4x3_rc3::IfcRailingType(data); + case 864: return new ::Ifc4x3_rc3::IfcRailingTypeEnum(data); + case 865: return new ::Ifc4x3_rc3::IfcRailType(data); + case 866: return new ::Ifc4x3_rc3::IfcRailTypeEnum(data); + case 867: return new ::Ifc4x3_rc3::IfcRailway(data); + case 868: return new ::Ifc4x3_rc3::IfcRailwayPartTypeEnum(data); + case 869: return new ::Ifc4x3_rc3::IfcRailwayTypeEnum(data); + case 870: return new ::Ifc4x3_rc3::IfcRamp(data); + case 871: return new ::Ifc4x3_rc3::IfcRampFlight(data); + case 872: return new ::Ifc4x3_rc3::IfcRampFlightType(data); + case 873: return new ::Ifc4x3_rc3::IfcRampFlightTypeEnum(data); + case 874: return new ::Ifc4x3_rc3::IfcRampType(data); + case 875: return new ::Ifc4x3_rc3::IfcRampTypeEnum(data); + case 876: return new ::Ifc4x3_rc3::IfcRatioMeasure(data); + case 877: return new ::Ifc4x3_rc3::IfcRationalBSplineCurveWithKnots(data); + case 878: return new ::Ifc4x3_rc3::IfcRationalBSplineSurfaceWithKnots(data); + case 879: return new ::Ifc4x3_rc3::IfcReal(data); + case 880: return new ::Ifc4x3_rc3::IfcRectangleHollowProfileDef(data); + case 881: return new ::Ifc4x3_rc3::IfcRectangleProfileDef(data); + case 882: return new ::Ifc4x3_rc3::IfcRectangularPyramid(data); + case 883: return new ::Ifc4x3_rc3::IfcRectangularTrimmedSurface(data); + case 884: return new ::Ifc4x3_rc3::IfcRecurrencePattern(data); + case 885: return new ::Ifc4x3_rc3::IfcRecurrenceTypeEnum(data); + case 886: return new ::Ifc4x3_rc3::IfcReference(data); + case 887: return new ::Ifc4x3_rc3::IfcReferent(data); + case 888: return new ::Ifc4x3_rc3::IfcReferentTypeEnum(data); + case 889: return new ::Ifc4x3_rc3::IfcReflectanceMethodEnum(data); + case 890: return new ::Ifc4x3_rc3::IfcRegularTimeSeries(data); + case 891: return new ::Ifc4x3_rc3::IfcReinforcedSoil(data); + case 892: return new ::Ifc4x3_rc3::IfcReinforcedSoilTypeEnum(data); + case 893: return new ::Ifc4x3_rc3::IfcReinforcementBarProperties(data); + case 894: return new ::Ifc4x3_rc3::IfcReinforcementDefinitionProperties(data); + case 895: return new ::Ifc4x3_rc3::IfcReinforcingBar(data); + case 896: return new ::Ifc4x3_rc3::IfcReinforcingBarRoleEnum(data); + case 897: return new ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum(data); + case 898: return new ::Ifc4x3_rc3::IfcReinforcingBarType(data); + case 899: return new ::Ifc4x3_rc3::IfcReinforcingBarTypeEnum(data); + case 900: return new ::Ifc4x3_rc3::IfcReinforcingElement(data); + case 901: return new ::Ifc4x3_rc3::IfcReinforcingElementType(data); + case 902: return new ::Ifc4x3_rc3::IfcReinforcingMesh(data); + case 903: return new ::Ifc4x3_rc3::IfcReinforcingMeshType(data); + case 904: return new ::Ifc4x3_rc3::IfcReinforcingMeshTypeEnum(data); + case 905: return new ::Ifc4x3_rc3::IfcRelAggregates(data); + case 906: return new ::Ifc4x3_rc3::IfcRelAssigns(data); + case 907: return new ::Ifc4x3_rc3::IfcRelAssignsToActor(data); + case 908: return new ::Ifc4x3_rc3::IfcRelAssignsToControl(data); + case 909: return new ::Ifc4x3_rc3::IfcRelAssignsToGroup(data); + case 910: return new ::Ifc4x3_rc3::IfcRelAssignsToGroupByFactor(data); + case 911: return new ::Ifc4x3_rc3::IfcRelAssignsToProcess(data); + case 912: return new ::Ifc4x3_rc3::IfcRelAssignsToProduct(data); + case 913: return new ::Ifc4x3_rc3::IfcRelAssignsToResource(data); + case 914: return new ::Ifc4x3_rc3::IfcRelAssociates(data); + case 915: return new ::Ifc4x3_rc3::IfcRelAssociatesApproval(data); + case 916: return new ::Ifc4x3_rc3::IfcRelAssociatesClassification(data); + case 917: return new ::Ifc4x3_rc3::IfcRelAssociatesConstraint(data); + case 918: return new ::Ifc4x3_rc3::IfcRelAssociatesDocument(data); + case 919: return new ::Ifc4x3_rc3::IfcRelAssociatesLibrary(data); + case 920: return new ::Ifc4x3_rc3::IfcRelAssociatesMaterial(data); + case 921: return new ::Ifc4x3_rc3::IfcRelAssociatesProfileDef(data); + case 922: return new ::Ifc4x3_rc3::IfcRelationship(data); + case 923: return new ::Ifc4x3_rc3::IfcRelConnects(data); + case 924: return new ::Ifc4x3_rc3::IfcRelConnectsElements(data); + case 925: return new ::Ifc4x3_rc3::IfcRelConnectsPathElements(data); + case 926: return new ::Ifc4x3_rc3::IfcRelConnectsPorts(data); + case 927: return new ::Ifc4x3_rc3::IfcRelConnectsPortToElement(data); + case 928: return new ::Ifc4x3_rc3::IfcRelConnectsStructuralActivity(data); + case 929: return new ::Ifc4x3_rc3::IfcRelConnectsStructuralMember(data); + case 930: return new ::Ifc4x3_rc3::IfcRelConnectsWithEccentricity(data); + case 931: return new ::Ifc4x3_rc3::IfcRelConnectsWithRealizingElements(data); + case 932: return new ::Ifc4x3_rc3::IfcRelContainedInSpatialStructure(data); + case 933: return new ::Ifc4x3_rc3::IfcRelCoversBldgElements(data); + case 934: return new ::Ifc4x3_rc3::IfcRelCoversSpaces(data); + case 935: return new ::Ifc4x3_rc3::IfcRelDeclares(data); + case 936: return new ::Ifc4x3_rc3::IfcRelDecomposes(data); + case 937: return new ::Ifc4x3_rc3::IfcRelDefines(data); + case 938: return new ::Ifc4x3_rc3::IfcRelDefinesByObject(data); + case 939: return new ::Ifc4x3_rc3::IfcRelDefinesByProperties(data); + case 940: return new ::Ifc4x3_rc3::IfcRelDefinesByTemplate(data); + case 941: return new ::Ifc4x3_rc3::IfcRelDefinesByType(data); + case 942: return new ::Ifc4x3_rc3::IfcRelFillsElement(data); + case 943: return new ::Ifc4x3_rc3::IfcRelFlowControlElements(data); + case 944: return new ::Ifc4x3_rc3::IfcRelInterferesElements(data); + case 945: return new ::Ifc4x3_rc3::IfcRelNests(data); + case 946: return new ::Ifc4x3_rc3::IfcRelPositions(data); + case 947: return new ::Ifc4x3_rc3::IfcRelProjectsElement(data); + case 948: return new ::Ifc4x3_rc3::IfcRelReferencedInSpatialStructure(data); + case 949: return new ::Ifc4x3_rc3::IfcRelSequence(data); + case 950: return new ::Ifc4x3_rc3::IfcRelServicesBuildings(data); + case 951: return new ::Ifc4x3_rc3::IfcRelSpaceBoundary(data); + case 952: return new ::Ifc4x3_rc3::IfcRelSpaceBoundary1stLevel(data); + case 953: return new ::Ifc4x3_rc3::IfcRelSpaceBoundary2ndLevel(data); + case 954: return new ::Ifc4x3_rc3::IfcRelVoidsElement(data); + case 955: return new ::Ifc4x3_rc3::IfcReparametrisedCompositeCurveSegment(data); + case 956: return new ::Ifc4x3_rc3::IfcRepresentation(data); + case 957: return new ::Ifc4x3_rc3::IfcRepresentationContext(data); + case 958: return new ::Ifc4x3_rc3::IfcRepresentationItem(data); + case 959: return new ::Ifc4x3_rc3::IfcRepresentationMap(data); + case 960: return new ::Ifc4x3_rc3::IfcResource(data); + case 961: return new ::Ifc4x3_rc3::IfcResourceApprovalRelationship(data); + case 962: return new ::Ifc4x3_rc3::IfcResourceConstraintRelationship(data); + case 963: return new ::Ifc4x3_rc3::IfcResourceLevelRelationship(data); + case 966: return new ::Ifc4x3_rc3::IfcResourceTime(data); + case 967: return new ::Ifc4x3_rc3::IfcRevolvedAreaSolid(data); + case 968: return new ::Ifc4x3_rc3::IfcRevolvedAreaSolidTapered(data); + case 969: return new ::Ifc4x3_rc3::IfcRightCircularCone(data); + case 970: return new ::Ifc4x3_rc3::IfcRightCircularCylinder(data); + case 971: return new ::Ifc4x3_rc3::IfcRoad(data); + case 972: return new ::Ifc4x3_rc3::IfcRoadPartTypeEnum(data); + case 973: return new ::Ifc4x3_rc3::IfcRoadTypeEnum(data); + case 974: return new ::Ifc4x3_rc3::IfcRoleEnum(data); + case 975: return new ::Ifc4x3_rc3::IfcRoof(data); + case 976: return new ::Ifc4x3_rc3::IfcRoofType(data); + case 977: return new ::Ifc4x3_rc3::IfcRoofTypeEnum(data); + case 978: return new ::Ifc4x3_rc3::IfcRoot(data); + case 979: return new ::Ifc4x3_rc3::IfcRotationalFrequencyMeasure(data); + case 980: return new ::Ifc4x3_rc3::IfcRotationalMassMeasure(data); + case 981: return new ::Ifc4x3_rc3::IfcRotationalStiffnessMeasure(data); + case 983: return new ::Ifc4x3_rc3::IfcRoundedRectangleProfileDef(data); + case 984: return new ::Ifc4x3_rc3::IfcSanitaryTerminal(data); + case 985: return new ::Ifc4x3_rc3::IfcSanitaryTerminalType(data); + case 986: return new ::Ifc4x3_rc3::IfcSanitaryTerminalTypeEnum(data); + case 987: return new ::Ifc4x3_rc3::IfcSchedulingTime(data); + case 988: return new ::Ifc4x3_rc3::IfcSeamCurve(data); + case 989: return new ::Ifc4x3_rc3::IfcSecondOrderPolynomialSpiral(data); + case 990: return new ::Ifc4x3_rc3::IfcSectionalAreaIntegralMeasure(data); + case 991: return new ::Ifc4x3_rc3::IfcSectionedSolid(data); + case 992: return new ::Ifc4x3_rc3::IfcSectionedSolidHorizontal(data); + case 993: return new ::Ifc4x3_rc3::IfcSectionedSpine(data); + case 994: return new ::Ifc4x3_rc3::IfcSectionedSurface(data); + case 995: return new ::Ifc4x3_rc3::IfcSectionModulusMeasure(data); + case 996: return new ::Ifc4x3_rc3::IfcSectionProperties(data); + case 997: return new ::Ifc4x3_rc3::IfcSectionReinforcementProperties(data); + case 998: return new ::Ifc4x3_rc3::IfcSectionTypeEnum(data); + case 999: return new ::Ifc4x3_rc3::IfcSegment(data); + case 1000: return new ::Ifc4x3_rc3::IfcSegmentedReferenceCurve(data); + case 1002: return new ::Ifc4x3_rc3::IfcSensor(data); + case 1003: return new ::Ifc4x3_rc3::IfcSensorType(data); + case 1004: return new ::Ifc4x3_rc3::IfcSensorTypeEnum(data); + case 1005: return new ::Ifc4x3_rc3::IfcSequenceEnum(data); + case 1006: return new ::Ifc4x3_rc3::IfcShadingDevice(data); + case 1007: return new ::Ifc4x3_rc3::IfcShadingDeviceType(data); + case 1008: return new ::Ifc4x3_rc3::IfcShadingDeviceTypeEnum(data); + case 1009: return new ::Ifc4x3_rc3::IfcShapeAspect(data); + case 1010: return new ::Ifc4x3_rc3::IfcShapeModel(data); + case 1011: return new ::Ifc4x3_rc3::IfcShapeRepresentation(data); + case 1012: return new ::Ifc4x3_rc3::IfcShearModulusMeasure(data); + case 1014: return new ::Ifc4x3_rc3::IfcShellBasedSurfaceModel(data); + case 1015: return new ::Ifc4x3_rc3::IfcSign(data); + case 1016: return new ::Ifc4x3_rc3::IfcSignal(data); + case 1017: return new ::Ifc4x3_rc3::IfcSignalType(data); + case 1018: return new ::Ifc4x3_rc3::IfcSignalTypeEnum(data); + case 1019: return new ::Ifc4x3_rc3::IfcSignType(data); + case 1020: return new ::Ifc4x3_rc3::IfcSignTypeEnum(data); + case 1021: return new ::Ifc4x3_rc3::IfcSimpleProperty(data); + case 1022: return new ::Ifc4x3_rc3::IfcSimplePropertyTemplate(data); + case 1023: return new ::Ifc4x3_rc3::IfcSimplePropertyTemplateTypeEnum(data); + case 1025: return new ::Ifc4x3_rc3::IfcSine(data); + case 1026: return new ::Ifc4x3_rc3::IfcSIPrefix(data); + case 1027: return new ::Ifc4x3_rc3::IfcSite(data); + case 1028: return new ::Ifc4x3_rc3::IfcSIUnit(data); + case 1029: return new ::Ifc4x3_rc3::IfcSIUnitName(data); + case 1031: return new ::Ifc4x3_rc3::IfcSlab(data); + case 1032: return new ::Ifc4x3_rc3::IfcSlabElementedCase(data); + case 1033: return new ::Ifc4x3_rc3::IfcSlabStandardCase(data); + case 1034: return new ::Ifc4x3_rc3::IfcSlabType(data); + case 1035: return new ::Ifc4x3_rc3::IfcSlabTypeEnum(data); + case 1036: return new ::Ifc4x3_rc3::IfcSlippageConnectionCondition(data); + case 1037: return new ::Ifc4x3_rc3::IfcSolarDevice(data); + case 1038: return new ::Ifc4x3_rc3::IfcSolarDeviceType(data); + case 1039: return new ::Ifc4x3_rc3::IfcSolarDeviceTypeEnum(data); + case 1040: return new ::Ifc4x3_rc3::IfcSolidAngleMeasure(data); + case 1041: return new ::Ifc4x3_rc3::IfcSolidModel(data); + case 1043: return new ::Ifc4x3_rc3::IfcSolidStratum(data); + case 1044: return new ::Ifc4x3_rc3::IfcSoundPowerLevelMeasure(data); + case 1045: return new ::Ifc4x3_rc3::IfcSoundPowerMeasure(data); + case 1046: return new ::Ifc4x3_rc3::IfcSoundPressureLevelMeasure(data); + case 1047: return new ::Ifc4x3_rc3::IfcSoundPressureMeasure(data); + case 1048: return new ::Ifc4x3_rc3::IfcSpace(data); + case 1050: return new ::Ifc4x3_rc3::IfcSpaceHeater(data); + case 1051: return new ::Ifc4x3_rc3::IfcSpaceHeaterType(data); + case 1052: return new ::Ifc4x3_rc3::IfcSpaceHeaterTypeEnum(data); + case 1053: return new ::Ifc4x3_rc3::IfcSpaceType(data); + case 1054: return new ::Ifc4x3_rc3::IfcSpaceTypeEnum(data); + case 1055: return new ::Ifc4x3_rc3::IfcSpatialElement(data); + case 1056: return new ::Ifc4x3_rc3::IfcSpatialElementType(data); + case 1058: return new ::Ifc4x3_rc3::IfcSpatialStructureElement(data); + case 1059: return new ::Ifc4x3_rc3::IfcSpatialStructureElementType(data); + case 1060: return new ::Ifc4x3_rc3::IfcSpatialZone(data); + case 1061: return new ::Ifc4x3_rc3::IfcSpatialZoneType(data); + case 1062: return new ::Ifc4x3_rc3::IfcSpatialZoneTypeEnum(data); + case 1063: return new ::Ifc4x3_rc3::IfcSpecificHeatCapacityMeasure(data); + case 1064: return new ::Ifc4x3_rc3::IfcSpecularExponent(data); + case 1066: return new ::Ifc4x3_rc3::IfcSpecularRoughness(data); + case 1067: return new ::Ifc4x3_rc3::IfcSphere(data); + case 1068: return new ::Ifc4x3_rc3::IfcSphericalSurface(data); + case 1069: return new ::Ifc4x3_rc3::IfcSpiral(data); + case 1070: return new ::Ifc4x3_rc3::IfcStackTerminal(data); + case 1071: return new ::Ifc4x3_rc3::IfcStackTerminalType(data); + case 1072: return new ::Ifc4x3_rc3::IfcStackTerminalTypeEnum(data); + case 1073: return new ::Ifc4x3_rc3::IfcStair(data); + case 1074: return new ::Ifc4x3_rc3::IfcStairFlight(data); + case 1075: return new ::Ifc4x3_rc3::IfcStairFlightType(data); + case 1076: return new ::Ifc4x3_rc3::IfcStairFlightTypeEnum(data); + case 1077: return new ::Ifc4x3_rc3::IfcStairType(data); + case 1078: return new ::Ifc4x3_rc3::IfcStairTypeEnum(data); + case 1079: return new ::Ifc4x3_rc3::IfcStateEnum(data); + case 1080: return new ::Ifc4x3_rc3::IfcStructuralAction(data); + case 1081: return new ::Ifc4x3_rc3::IfcStructuralActivity(data); + case 1083: return new ::Ifc4x3_rc3::IfcStructuralAnalysisModel(data); + case 1084: return new ::Ifc4x3_rc3::IfcStructuralConnection(data); + case 1085: return new ::Ifc4x3_rc3::IfcStructuralConnectionCondition(data); + case 1086: return new ::Ifc4x3_rc3::IfcStructuralCurveAction(data); + case 1087: return new ::Ifc4x3_rc3::IfcStructuralCurveActivityTypeEnum(data); + case 1088: return new ::Ifc4x3_rc3::IfcStructuralCurveConnection(data); + case 1089: return new ::Ifc4x3_rc3::IfcStructuralCurveMember(data); + case 1090: return new ::Ifc4x3_rc3::IfcStructuralCurveMemberTypeEnum(data); + case 1091: return new ::Ifc4x3_rc3::IfcStructuralCurveMemberVarying(data); + case 1092: return new ::Ifc4x3_rc3::IfcStructuralCurveReaction(data); + case 1093: return new ::Ifc4x3_rc3::IfcStructuralItem(data); + case 1094: return new ::Ifc4x3_rc3::IfcStructuralLinearAction(data); + case 1095: return new ::Ifc4x3_rc3::IfcStructuralLoad(data); + case 1096: return new ::Ifc4x3_rc3::IfcStructuralLoadCase(data); + case 1097: return new ::Ifc4x3_rc3::IfcStructuralLoadConfiguration(data); + case 1098: return new ::Ifc4x3_rc3::IfcStructuralLoadGroup(data); + case 1099: return new ::Ifc4x3_rc3::IfcStructuralLoadLinearForce(data); + case 1100: return new ::Ifc4x3_rc3::IfcStructuralLoadOrResult(data); + case 1101: return new ::Ifc4x3_rc3::IfcStructuralLoadPlanarForce(data); + case 1102: return new ::Ifc4x3_rc3::IfcStructuralLoadSingleDisplacement(data); + case 1103: return new ::Ifc4x3_rc3::IfcStructuralLoadSingleDisplacementDistortion(data); + case 1104: return new ::Ifc4x3_rc3::IfcStructuralLoadSingleForce(data); + case 1105: return new ::Ifc4x3_rc3::IfcStructuralLoadSingleForceWarping(data); + case 1106: return new ::Ifc4x3_rc3::IfcStructuralLoadStatic(data); + case 1107: return new ::Ifc4x3_rc3::IfcStructuralLoadTemperature(data); + case 1108: return new ::Ifc4x3_rc3::IfcStructuralMember(data); + case 1109: return new ::Ifc4x3_rc3::IfcStructuralPlanarAction(data); + case 1110: return new ::Ifc4x3_rc3::IfcStructuralPointAction(data); + case 1111: return new ::Ifc4x3_rc3::IfcStructuralPointConnection(data); + case 1112: return new ::Ifc4x3_rc3::IfcStructuralPointReaction(data); + case 1113: return new ::Ifc4x3_rc3::IfcStructuralReaction(data); + case 1114: return new ::Ifc4x3_rc3::IfcStructuralResultGroup(data); + case 1115: return new ::Ifc4x3_rc3::IfcStructuralSurfaceAction(data); + case 1116: return new ::Ifc4x3_rc3::IfcStructuralSurfaceActivityTypeEnum(data); + case 1117: return new ::Ifc4x3_rc3::IfcStructuralSurfaceConnection(data); + case 1118: return new ::Ifc4x3_rc3::IfcStructuralSurfaceMember(data); + case 1119: return new ::Ifc4x3_rc3::IfcStructuralSurfaceMemberTypeEnum(data); + case 1120: return new ::Ifc4x3_rc3::IfcStructuralSurfaceMemberVarying(data); + case 1121: return new ::Ifc4x3_rc3::IfcStructuralSurfaceReaction(data); + case 1122: return new ::Ifc4x3_rc3::IfcStyledItem(data); + case 1123: return new ::Ifc4x3_rc3::IfcStyledRepresentation(data); + case 1124: return new ::Ifc4x3_rc3::IfcStyleModel(data); + case 1125: return new ::Ifc4x3_rc3::IfcSubContractResource(data); + case 1126: return new ::Ifc4x3_rc3::IfcSubContractResourceType(data); + case 1127: return new ::Ifc4x3_rc3::IfcSubContractResourceTypeEnum(data); + case 1128: return new ::Ifc4x3_rc3::IfcSubedge(data); + case 1129: return new ::Ifc4x3_rc3::IfcSurface(data); + case 1130: return new ::Ifc4x3_rc3::IfcSurfaceCurve(data); + case 1131: return new ::Ifc4x3_rc3::IfcSurfaceCurveSweptAreaSolid(data); + case 1132: return new ::Ifc4x3_rc3::IfcSurfaceFeature(data); + case 1133: return new ::Ifc4x3_rc3::IfcSurfaceFeatureTypeEnum(data); + case 1134: return new ::Ifc4x3_rc3::IfcSurfaceOfLinearExtrusion(data); + case 1135: return new ::Ifc4x3_rc3::IfcSurfaceOfRevolution(data); + case 1137: return new ::Ifc4x3_rc3::IfcSurfaceReinforcementArea(data); + case 1138: return new ::Ifc4x3_rc3::IfcSurfaceSide(data); + case 1139: return new ::Ifc4x3_rc3::IfcSurfaceStyle(data); + case 1141: return new ::Ifc4x3_rc3::IfcSurfaceStyleLighting(data); + case 1142: return new ::Ifc4x3_rc3::IfcSurfaceStyleRefraction(data); + case 1143: return new ::Ifc4x3_rc3::IfcSurfaceStyleRendering(data); + case 1144: return new ::Ifc4x3_rc3::IfcSurfaceStyleShading(data); + case 1145: return new ::Ifc4x3_rc3::IfcSurfaceStyleWithTextures(data); + case 1146: return new ::Ifc4x3_rc3::IfcSurfaceTexture(data); + case 1147: return new ::Ifc4x3_rc3::IfcSweptAreaSolid(data); + case 1148: return new ::Ifc4x3_rc3::IfcSweptDiskSolid(data); + case 1149: return new ::Ifc4x3_rc3::IfcSweptDiskSolidPolygonal(data); + case 1150: return new ::Ifc4x3_rc3::IfcSweptSurface(data); + case 1151: return new ::Ifc4x3_rc3::IfcSwitchingDevice(data); + case 1152: return new ::Ifc4x3_rc3::IfcSwitchingDeviceType(data); + case 1153: return new ::Ifc4x3_rc3::IfcSwitchingDeviceTypeEnum(data); + case 1154: return new ::Ifc4x3_rc3::IfcSystem(data); + case 1155: return new ::Ifc4x3_rc3::IfcSystemFurnitureElement(data); + case 1156: return new ::Ifc4x3_rc3::IfcSystemFurnitureElementType(data); + case 1157: return new ::Ifc4x3_rc3::IfcSystemFurnitureElementTypeEnum(data); + case 1158: return new ::Ifc4x3_rc3::IfcTable(data); + case 1159: return new ::Ifc4x3_rc3::IfcTableColumn(data); + case 1160: return new ::Ifc4x3_rc3::IfcTableRow(data); + case 1161: return new ::Ifc4x3_rc3::IfcTank(data); + case 1162: return new ::Ifc4x3_rc3::IfcTankType(data); + case 1163: return new ::Ifc4x3_rc3::IfcTankTypeEnum(data); + case 1164: return new ::Ifc4x3_rc3::IfcTask(data); + case 1165: return new ::Ifc4x3_rc3::IfcTaskDurationEnum(data); + case 1166: return new ::Ifc4x3_rc3::IfcTaskTime(data); + case 1167: return new ::Ifc4x3_rc3::IfcTaskTimeRecurring(data); + case 1168: return new ::Ifc4x3_rc3::IfcTaskType(data); + case 1169: return new ::Ifc4x3_rc3::IfcTaskTypeEnum(data); + case 1170: return new ::Ifc4x3_rc3::IfcTelecomAddress(data); + case 1171: return new ::Ifc4x3_rc3::IfcTemperatureGradientMeasure(data); + case 1172: return new ::Ifc4x3_rc3::IfcTemperatureRateOfChangeMeasure(data); + case 1173: return new ::Ifc4x3_rc3::IfcTendon(data); + case 1174: return new ::Ifc4x3_rc3::IfcTendonAnchor(data); + case 1175: return new ::Ifc4x3_rc3::IfcTendonAnchorType(data); + case 1176: return new ::Ifc4x3_rc3::IfcTendonAnchorTypeEnum(data); + case 1177: return new ::Ifc4x3_rc3::IfcTendonConduit(data); + case 1178: return new ::Ifc4x3_rc3::IfcTendonConduitType(data); + case 1179: return new ::Ifc4x3_rc3::IfcTendonConduitTypeEnum(data); + case 1180: return new ::Ifc4x3_rc3::IfcTendonType(data); + case 1181: return new ::Ifc4x3_rc3::IfcTendonTypeEnum(data); + case 1182: return new ::Ifc4x3_rc3::IfcTessellatedFaceSet(data); + case 1183: return new ::Ifc4x3_rc3::IfcTessellatedItem(data); + case 1184: return new ::Ifc4x3_rc3::IfcText(data); + case 1185: return new ::Ifc4x3_rc3::IfcTextAlignment(data); + case 1186: return new ::Ifc4x3_rc3::IfcTextDecoration(data); + case 1187: return new ::Ifc4x3_rc3::IfcTextFontName(data); + case 1189: return new ::Ifc4x3_rc3::IfcTextLiteral(data); + case 1190: return new ::Ifc4x3_rc3::IfcTextLiteralWithExtent(data); + case 1191: return new ::Ifc4x3_rc3::IfcTextPath(data); + case 1192: return new ::Ifc4x3_rc3::IfcTextStyle(data); + case 1193: return new ::Ifc4x3_rc3::IfcTextStyleFontModel(data); + case 1194: return new ::Ifc4x3_rc3::IfcTextStyleForDefinedFont(data); + case 1195: return new ::Ifc4x3_rc3::IfcTextStyleTextModel(data); + case 1196: return new ::Ifc4x3_rc3::IfcTextTransformation(data); + case 1197: return new ::Ifc4x3_rc3::IfcTextureCoordinate(data); + case 1198: return new ::Ifc4x3_rc3::IfcTextureCoordinateGenerator(data); + case 1199: return new ::Ifc4x3_rc3::IfcTextureMap(data); + case 1200: return new ::Ifc4x3_rc3::IfcTextureVertex(data); + case 1201: return new ::Ifc4x3_rc3::IfcTextureVertexList(data); + case 1202: return new ::Ifc4x3_rc3::IfcThermalAdmittanceMeasure(data); + case 1203: return new ::Ifc4x3_rc3::IfcThermalConductivityMeasure(data); + case 1204: return new ::Ifc4x3_rc3::IfcThermalExpansionCoefficientMeasure(data); + case 1205: return new ::Ifc4x3_rc3::IfcThermalResistanceMeasure(data); + case 1206: return new ::Ifc4x3_rc3::IfcThermalTransmittanceMeasure(data); + case 1207: return new ::Ifc4x3_rc3::IfcThermodynamicTemperatureMeasure(data); + case 1208: return new ::Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral(data); + case 1209: return new ::Ifc4x3_rc3::IfcTime(data); + case 1210: return new ::Ifc4x3_rc3::IfcTimeMeasure(data); + case 1212: return new ::Ifc4x3_rc3::IfcTimePeriod(data); + case 1213: return new ::Ifc4x3_rc3::IfcTimeSeries(data); + case 1214: return new ::Ifc4x3_rc3::IfcTimeSeriesDataTypeEnum(data); + case 1215: return new ::Ifc4x3_rc3::IfcTimeSeriesValue(data); + case 1216: return new ::Ifc4x3_rc3::IfcTimeStamp(data); + case 1217: return new ::Ifc4x3_rc3::IfcTopologicalRepresentationItem(data); + case 1218: return new ::Ifc4x3_rc3::IfcTopologyRepresentation(data); + case 1219: return new ::Ifc4x3_rc3::IfcToroidalSurface(data); + case 1220: return new ::Ifc4x3_rc3::IfcTorqueMeasure(data); + case 1221: return new ::Ifc4x3_rc3::IfcTrackElement(data); + case 1222: return new ::Ifc4x3_rc3::IfcTrackElementType(data); + case 1223: return new ::Ifc4x3_rc3::IfcTrackElementTypeEnum(data); + case 1224: return new ::Ifc4x3_rc3::IfcTransformer(data); + case 1225: return new ::Ifc4x3_rc3::IfcTransformerType(data); + case 1226: return new ::Ifc4x3_rc3::IfcTransformerTypeEnum(data); + case 1227: return new ::Ifc4x3_rc3::IfcTransitionCode(data); + case 1229: return new ::Ifc4x3_rc3::IfcTransportElement(data); + case 1230: return new ::Ifc4x3_rc3::IfcTransportElementFixedTypeEnum(data); + case 1231: return new ::Ifc4x3_rc3::IfcTransportElementNonFixedTypeEnum(data); + case 1232: return new ::Ifc4x3_rc3::IfcTransportElementType(data); + case 1234: return new ::Ifc4x3_rc3::IfcTrapeziumProfileDef(data); + case 1235: return new ::Ifc4x3_rc3::IfcTriangulatedFaceSet(data); + case 1236: return new ::Ifc4x3_rc3::IfcTriangulatedIrregularNetwork(data); + case 1237: return new ::Ifc4x3_rc3::IfcTrimmedCurve(data); + case 1238: return new ::Ifc4x3_rc3::IfcTrimmingPreference(data); + case 1240: return new ::Ifc4x3_rc3::IfcTShapeProfileDef(data); + case 1241: return new ::Ifc4x3_rc3::IfcTubeBundle(data); + case 1242: return new ::Ifc4x3_rc3::IfcTubeBundleType(data); + case 1243: return new ::Ifc4x3_rc3::IfcTubeBundleTypeEnum(data); + case 1244: return new ::Ifc4x3_rc3::IfcTypeObject(data); + case 1245: return new ::Ifc4x3_rc3::IfcTypeProcess(data); + case 1246: return new ::Ifc4x3_rc3::IfcTypeProduct(data); + case 1247: return new ::Ifc4x3_rc3::IfcTypeResource(data); + case 1249: return new ::Ifc4x3_rc3::IfcUnitaryControlElement(data); + case 1250: return new ::Ifc4x3_rc3::IfcUnitaryControlElementType(data); + case 1251: return new ::Ifc4x3_rc3::IfcUnitaryControlElementTypeEnum(data); + case 1252: return new ::Ifc4x3_rc3::IfcUnitaryEquipment(data); + case 1253: return new ::Ifc4x3_rc3::IfcUnitaryEquipmentType(data); + case 1254: return new ::Ifc4x3_rc3::IfcUnitaryEquipmentTypeEnum(data); + case 1255: return new ::Ifc4x3_rc3::IfcUnitAssignment(data); + case 1256: return new ::Ifc4x3_rc3::IfcUnitEnum(data); + case 1257: return new ::Ifc4x3_rc3::IfcURIReference(data); + case 1258: return new ::Ifc4x3_rc3::IfcUShapeProfileDef(data); + case 1260: return new ::Ifc4x3_rc3::IfcValve(data); + case 1261: return new ::Ifc4x3_rc3::IfcValveType(data); + case 1262: return new ::Ifc4x3_rc3::IfcValveTypeEnum(data); + case 1263: return new ::Ifc4x3_rc3::IfcVaporPermeabilityMeasure(data); + case 1264: return new ::Ifc4x3_rc3::IfcVector(data); + case 1266: return new ::Ifc4x3_rc3::IfcVertex(data); + case 1267: return new ::Ifc4x3_rc3::IfcVertexLoop(data); + case 1268: return new ::Ifc4x3_rc3::IfcVertexPoint(data); + case 1269: return new ::Ifc4x3_rc3::IfcVibrationDamper(data); + case 1270: return new ::Ifc4x3_rc3::IfcVibrationDamperType(data); + case 1271: return new ::Ifc4x3_rc3::IfcVibrationDamperTypeEnum(data); + case 1272: return new ::Ifc4x3_rc3::IfcVibrationIsolator(data); + case 1273: return new ::Ifc4x3_rc3::IfcVibrationIsolatorType(data); + case 1274: return new ::Ifc4x3_rc3::IfcVibrationIsolatorTypeEnum(data); + case 1275: return new ::Ifc4x3_rc3::IfcVienneseBend(data); + case 1276: return new ::Ifc4x3_rc3::IfcVirtualElement(data); + case 1277: return new ::Ifc4x3_rc3::IfcVirtualGridIntersection(data); + case 1278: return new ::Ifc4x3_rc3::IfcVoidingFeature(data); + case 1279: return new ::Ifc4x3_rc3::IfcVoidingFeatureTypeEnum(data); + case 1280: return new ::Ifc4x3_rc3::IfcVoidStratum(data); + case 1281: return new ::Ifc4x3_rc3::IfcVolumeMeasure(data); + case 1282: return new ::Ifc4x3_rc3::IfcVolumetricFlowRateMeasure(data); + case 1283: return new ::Ifc4x3_rc3::IfcWall(data); + case 1284: return new ::Ifc4x3_rc3::IfcWallElementedCase(data); + case 1285: return new ::Ifc4x3_rc3::IfcWallStandardCase(data); + case 1286: return new ::Ifc4x3_rc3::IfcWallType(data); + case 1287: return new ::Ifc4x3_rc3::IfcWallTypeEnum(data); + case 1288: return new ::Ifc4x3_rc3::IfcWarpingConstantMeasure(data); + case 1289: return new ::Ifc4x3_rc3::IfcWarpingMomentMeasure(data); + case 1291: return new ::Ifc4x3_rc3::IfcWasteTerminal(data); + case 1292: return new ::Ifc4x3_rc3::IfcWasteTerminalType(data); + case 1293: return new ::Ifc4x3_rc3::IfcWasteTerminalTypeEnum(data); + case 1294: return new ::Ifc4x3_rc3::IfcWaterStratum(data); + case 1295: return new ::Ifc4x3_rc3::IfcWindow(data); + case 1296: return new ::Ifc4x3_rc3::IfcWindowLiningProperties(data); + case 1297: return new ::Ifc4x3_rc3::IfcWindowPanelOperationEnum(data); + case 1298: return new ::Ifc4x3_rc3::IfcWindowPanelPositionEnum(data); + case 1299: return new ::Ifc4x3_rc3::IfcWindowPanelProperties(data); + case 1300: return new ::Ifc4x3_rc3::IfcWindowStandardCase(data); + case 1301: return new ::Ifc4x3_rc3::IfcWindowStyle(data); + case 1302: return new ::Ifc4x3_rc3::IfcWindowStyleConstructionEnum(data); + case 1303: return new ::Ifc4x3_rc3::IfcWindowStyleOperationEnum(data); + case 1304: return new ::Ifc4x3_rc3::IfcWindowType(data); + case 1305: return new ::Ifc4x3_rc3::IfcWindowTypeEnum(data); + case 1306: return new ::Ifc4x3_rc3::IfcWindowTypePartitioningEnum(data); + case 1307: return new ::Ifc4x3_rc3::IfcWorkCalendar(data); + case 1308: return new ::Ifc4x3_rc3::IfcWorkCalendarTypeEnum(data); + case 1309: return new ::Ifc4x3_rc3::IfcWorkControl(data); + case 1310: return new ::Ifc4x3_rc3::IfcWorkPlan(data); + case 1311: return new ::Ifc4x3_rc3::IfcWorkPlanTypeEnum(data); + case 1312: return new ::Ifc4x3_rc3::IfcWorkSchedule(data); + case 1313: return new ::Ifc4x3_rc3::IfcWorkScheduleTypeEnum(data); + case 1314: return new ::Ifc4x3_rc3::IfcWorkTime(data); + case 1315: return new ::Ifc4x3_rc3::IfcZone(data); + case 1316: return new ::Ifc4x3_rc3::IfcZShapeProfileDef(data); default: throw IfcParse::IfcException(data->type()->name() + " cannot be instantiated"); } @@ -2714,10 +2743,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { } { std::vector items; items.reserve(7); - items.push_back("BIQUADRATICPARABOLA"); items.push_back("BLOSSCURVE"); items.push_back("CONSTANTCANT"); items.push_back("COSINECURVE"); + items.push_back("HELMERTCURVE"); items.push_back("LINEARTRANSITION"); items.push_back("SINECURVE"); items.push_back("VIENNESEBEND"); @@ -2725,13 +2754,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { } { std::vector items; items.reserve(10); - items.push_back("BIQUADRATICPARABOLA"); items.push_back("BLOSSCURVE"); items.push_back("CIRCULARARC"); items.push_back("CLOTHOID"); items.push_back("COSINECURVE"); items.push_back("CUBIC"); items.push_back("CUBICSPIRAL"); + items.push_back("HELMERTCURVE"); items.push_back("LINE"); items.push_back("SINECURVE"); items.push_back("VIENNESEBEND"); @@ -3470,7 +3499,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SOUNDABSORPTION"); items.push_back("TENSIONINGEQUIPMENT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDiscreteAccessoryTypeEnum_type = new enumeration_type("IfcDiscreteAccessoryTypeEnum", 313, items); + IFC4X3_RC3_IfcDiscreteAccessoryTypeEnum_type = new enumeration_type("IfcDiscreteAccessoryTypeEnum", 314, items); } { std::vector items; items.reserve(7); @@ -3481,7 +3510,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SWITCHBOARD"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDistributionBoardTypeEnum_type = new enumeration_type("IfcDistributionBoardTypeEnum", 316, items); + IFC4X3_RC3_IfcDistributionBoardTypeEnum_type = new enumeration_type("IfcDistributionBoardTypeEnum", 317, items); } { std::vector items; items.reserve(10); @@ -3495,7 +3524,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRENCH"); items.push_back("USERDEFINED"); items.push_back("VALVECHAMBER"); - IFC4X3_RC3_IfcDistributionChamberElementTypeEnum_type = new enumeration_type("IfcDistributionChamberElementTypeEnum", 319, items); + IFC4X3_RC3_IfcDistributionChamberElementTypeEnum_type = new enumeration_type("IfcDistributionChamberElementTypeEnum", 320, items); } { std::vector items; items.reserve(7); @@ -3506,7 +3535,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PIPE"); items.push_back("USERDEFINED"); items.push_back("WIRELESS"); - IFC4X3_RC3_IfcDistributionPortTypeEnum_type = new enumeration_type("IfcDistributionPortTypeEnum", 328, items); + IFC4X3_RC3_IfcDistributionPortTypeEnum_type = new enumeration_type("IfcDistributionPortTypeEnum", 329, items); } { std::vector items; items.reserve(47); @@ -3557,7 +3586,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("VENTILATION"); items.push_back("WASTEWATER"); items.push_back("WATERSUPPLY"); - IFC4X3_RC3_IfcDistributionSystemEnum_type = new enumeration_type("IfcDistributionSystemEnum", 330, items); + IFC4X3_RC3_IfcDistributionSystemEnum_type = new enumeration_type("IfcDistributionSystemEnum", 331, items); } { std::vector items; items.reserve(6); @@ -3567,7 +3596,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PUBLIC"); items.push_back("RESTRICTED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDocumentConfidentialityEnum_type = new enumeration_type("IfcDocumentConfidentialityEnum", 331, items); + IFC4X3_RC3_IfcDocumentConfidentialityEnum_type = new enumeration_type("IfcDocumentConfidentialityEnum", 332, items); } { std::vector items; items.reserve(5); @@ -3576,7 +3605,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("FINALDRAFT"); items.push_back("NOTDEFINED"); items.push_back("REVISION"); - IFC4X3_RC3_IfcDocumentStatusEnum_type = new enumeration_type("IfcDocumentStatusEnum", 336, items); + IFC4X3_RC3_IfcDocumentStatusEnum_type = new enumeration_type("IfcDocumentStatusEnum", 337, items); } { std::vector items; items.reserve(9); @@ -3589,7 +3618,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SLIDING"); items.push_back("SWINGING"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDoorPanelOperationEnum_type = new enumeration_type("IfcDoorPanelOperationEnum", 339, items); + IFC4X3_RC3_IfcDoorPanelOperationEnum_type = new enumeration_type("IfcDoorPanelOperationEnum", 340, items); } { std::vector items; items.reserve(4); @@ -3597,7 +3626,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("MIDDLE"); items.push_back("NOTDEFINED"); items.push_back("RIGHT"); - IFC4X3_RC3_IfcDoorPanelPositionEnum_type = new enumeration_type("IfcDoorPanelPositionEnum", 340, items); + IFC4X3_RC3_IfcDoorPanelPositionEnum_type = new enumeration_type("IfcDoorPanelPositionEnum", 341, items); } { std::vector items; items.reserve(9); @@ -3610,7 +3639,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STEEL"); items.push_back("USERDEFINED"); items.push_back("WOOD"); - IFC4X3_RC3_IfcDoorStyleConstructionEnum_type = new enumeration_type("IfcDoorStyleConstructionEnum", 344, items); + IFC4X3_RC3_IfcDoorStyleConstructionEnum_type = new enumeration_type("IfcDoorStyleConstructionEnum", 345, items); } { std::vector items; items.reserve(18); @@ -3632,7 +3661,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SLIDING_TO_LEFT"); items.push_back("SLIDING_TO_RIGHT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDoorStyleOperationEnum_type = new enumeration_type("IfcDoorStyleOperationEnum", 345, items); + IFC4X3_RC3_IfcDoorStyleOperationEnum_type = new enumeration_type("IfcDoorStyleOperationEnum", 346, items); } { std::vector items; items.reserve(7); @@ -3643,7 +3672,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRAPDOOR"); items.push_back("TURNSTILE"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDoorTypeEnum_type = new enumeration_type("IfcDoorTypeEnum", 347, items); + IFC4X3_RC3_IfcDoorTypeEnum_type = new enumeration_type("IfcDoorTypeEnum", 348, items); } { std::vector items; items.reserve(25); @@ -3672,9 +3701,9 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SWING_FIXED_LEFT"); items.push_back("SWING_FIXED_RIGHT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDoorTypeOperationEnum_type = new enumeration_type("IfcDoorTypeOperationEnum", 348, items); + IFC4X3_RC3_IfcDoorTypeOperationEnum_type = new enumeration_type("IfcDoorTypeOperationEnum", 349, items); } - IFC4X3_RC3_IfcDoseEquivalentMeasure_type = new type_declaration("IfcDoseEquivalentMeasure", 349, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcDoseEquivalentMeasure_type = new type_declaration("IfcDoseEquivalentMeasure", 350, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(9); items.push_back("BEND"); @@ -3686,7 +3715,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("OBSTRUCTION"); items.push_back("TRANSITION"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDuctFittingTypeEnum_type = new enumeration_type("IfcDuctFittingTypeEnum", 354, items); + IFC4X3_RC3_IfcDuctFittingTypeEnum_type = new enumeration_type("IfcDuctFittingTypeEnum", 355, items); } { std::vector items; items.reserve(4); @@ -3694,7 +3723,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("RIGIDSEGMENT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDuctSegmentTypeEnum_type = new enumeration_type("IfcDuctSegmentTypeEnum", 357, items); + IFC4X3_RC3_IfcDuctSegmentTypeEnum_type = new enumeration_type("IfcDuctSegmentTypeEnum", 358, items); } { std::vector items; items.reserve(5); @@ -3703,10 +3732,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RECTANGULAR"); items.push_back("ROUND"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcDuctSilencerTypeEnum_type = new enumeration_type("IfcDuctSilencerTypeEnum", 360, items); + IFC4X3_RC3_IfcDuctSilencerTypeEnum_type = new enumeration_type("IfcDuctSilencerTypeEnum", 361, items); } - IFC4X3_RC3_IfcDuration_type = new type_declaration("IfcDuration", 361, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcDynamicViscosityMeasure_type = new type_declaration("IfcDynamicViscosityMeasure", 362, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcDuration_type = new type_declaration("IfcDuration", 362, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcDynamicViscosityMeasure_type = new type_declaration("IfcDynamicViscosityMeasure", 363, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(11); items.push_back("BASE_EXCAVATION"); @@ -3720,7 +3749,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TOPSOILREMOVAL"); items.push_back("TRENCH"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcEarthworksCutTypeEnum_type = new enumeration_type("IfcEarthworksCutTypeEnum", 364, items); + IFC4X3_RC3_IfcEarthworksCutTypeEnum_type = new enumeration_type("IfcEarthworksCutTypeEnum", 365, items); } { std::vector items; items.reserve(9); @@ -3733,7 +3762,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SUBGRADEBED"); items.push_back("TRANSITIONSECTION"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcEarthworksFillTypeEnum_type = new enumeration_type("IfcEarthworksFillTypeEnum", 367, items); + IFC4X3_RC3_IfcEarthworksFillTypeEnum_type = new enumeration_type("IfcEarthworksFillTypeEnum", 368, items); } { std::vector items; items.reserve(18); @@ -3755,12 +3784,12 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("USERDEFINED"); items.push_back("VENDINGMACHINE"); items.push_back("WASHINGMACHINE"); - IFC4X3_RC3_IfcElectricApplianceTypeEnum_type = new enumeration_type("IfcElectricApplianceTypeEnum", 373, items); + IFC4X3_RC3_IfcElectricApplianceTypeEnum_type = new enumeration_type("IfcElectricApplianceTypeEnum", 374, items); } - IFC4X3_RC3_IfcElectricCapacitanceMeasure_type = new type_declaration("IfcElectricCapacitanceMeasure", 374, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcElectricChargeMeasure_type = new type_declaration("IfcElectricChargeMeasure", 375, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcElectricConductanceMeasure_type = new type_declaration("IfcElectricConductanceMeasure", 376, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcElectricCurrentMeasure_type = new type_declaration("IfcElectricCurrentMeasure", 377, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcElectricCapacitanceMeasure_type = new type_declaration("IfcElectricCapacitanceMeasure", 375, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcElectricChargeMeasure_type = new type_declaration("IfcElectricChargeMeasure", 376, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcElectricConductanceMeasure_type = new type_declaration("IfcElectricConductanceMeasure", 377, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcElectricCurrentMeasure_type = new type_declaration("IfcElectricCurrentMeasure", 378, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(6); items.push_back("CONSUMERUNIT"); @@ -3769,7 +3798,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SWITCHBOARD"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcElectricDistributionBoardTypeEnum_type = new enumeration_type("IfcElectricDistributionBoardTypeEnum", 380, items); + IFC4X3_RC3_IfcElectricDistributionBoardTypeEnum_type = new enumeration_type("IfcElectricDistributionBoardTypeEnum", 381, items); } { std::vector items; items.reserve(11); @@ -3784,14 +3813,14 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RECHARGER"); items.push_back("UPS"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcElectricFlowStorageDeviceTypeEnum_type = new enumeration_type("IfcElectricFlowStorageDeviceTypeEnum", 383, items); + IFC4X3_RC3_IfcElectricFlowStorageDeviceTypeEnum_type = new enumeration_type("IfcElectricFlowStorageDeviceTypeEnum", 384, items); } { std::vector items; items.reserve(3); items.push_back("ELECTRONICFILTER"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcElectricFlowTreatmentDeviceTypeEnum_type = new enumeration_type("IfcElectricFlowTreatmentDeviceTypeEnum", 386, items); + IFC4X3_RC3_IfcElectricFlowTreatmentDeviceTypeEnum_type = new enumeration_type("IfcElectricFlowTreatmentDeviceTypeEnum", 387, items); } { std::vector items; items.reserve(5); @@ -3800,7 +3829,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("STANDALONE"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcElectricGeneratorTypeEnum_type = new enumeration_type("IfcElectricGeneratorTypeEnum", 389, items); + IFC4X3_RC3_IfcElectricGeneratorTypeEnum_type = new enumeration_type("IfcElectricGeneratorTypeEnum", 390, items); } { std::vector items; items.reserve(7); @@ -3811,9 +3840,9 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RELUCTANCESYNCHRONOUS"); items.push_back("SYNCHRONOUS"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcElectricMotorTypeEnum_type = new enumeration_type("IfcElectricMotorTypeEnum", 392, items); + IFC4X3_RC3_IfcElectricMotorTypeEnum_type = new enumeration_type("IfcElectricMotorTypeEnum", 393, items); } - IFC4X3_RC3_IfcElectricResistanceMeasure_type = new type_declaration("IfcElectricResistanceMeasure", 393, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcElectricResistanceMeasure_type = new type_declaration("IfcElectricResistanceMeasure", 394, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(5); items.push_back("NOTDEFINED"); @@ -3821,9 +3850,9 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TIMECLOCK"); items.push_back("TIMEDELAY"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcElectricTimeControlTypeEnum_type = new enumeration_type("IfcElectricTimeControlTypeEnum", 396, items); + IFC4X3_RC3_IfcElectricTimeControlTypeEnum_type = new enumeration_type("IfcElectricTimeControlTypeEnum", 397, items); } - IFC4X3_RC3_IfcElectricVoltageMeasure_type = new type_declaration("IfcElectricVoltageMeasure", 397, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcElectricVoltageMeasure_type = new type_declaration("IfcElectricVoltageMeasure", 398, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(30); items.push_back("ABUTMENT"); @@ -3856,23 +3885,23 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRUSS"); items.push_back("TURNOUTPANEL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcElementAssemblyTypeEnum_type = new enumeration_type("IfcElementAssemblyTypeEnum", 402, items); + IFC4X3_RC3_IfcElementAssemblyTypeEnum_type = new enumeration_type("IfcElementAssemblyTypeEnum", 403, items); } { std::vector items; items.reserve(3); items.push_back("COMPLEX"); items.push_back("ELEMENT"); items.push_back("PARTIAL"); - IFC4X3_RC3_IfcElementCompositionEnum_type = new enumeration_type("IfcElementCompositionEnum", 405, items); + IFC4X3_RC3_IfcElementCompositionEnum_type = new enumeration_type("IfcElementCompositionEnum", 406, items); } - IFC4X3_RC3_IfcEnergyMeasure_type = new type_declaration("IfcEnergyMeasure", 412, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcEnergyMeasure_type = new type_declaration("IfcEnergyMeasure", 413, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(4); items.push_back("EXTERNALCOMBUSTION"); items.push_back("INTERNALCOMBUSTION"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcEngineTypeEnum_type = new enumeration_type("IfcEngineTypeEnum", 415, items); + IFC4X3_RC3_IfcEngineTypeEnum_type = new enumeration_type("IfcEngineTypeEnum", 416, items); } { std::vector items; items.reserve(11); @@ -3887,7 +3916,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("INDIRECTEVAPORATIVEWETCOIL"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcEvaporativeCoolerTypeEnum_type = new enumeration_type("IfcEvaporativeCoolerTypeEnum", 418, items); + IFC4X3_RC3_IfcEvaporativeCoolerTypeEnum_type = new enumeration_type("IfcEvaporativeCoolerTypeEnum", 419, items); } { std::vector items; items.reserve(8); @@ -3899,7 +3928,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SHELLANDCOIL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcEvaporatorTypeEnum_type = new enumeration_type("IfcEvaporatorTypeEnum", 421, items); + IFC4X3_RC3_IfcEvaporatorTypeEnum_type = new enumeration_type("IfcEvaporatorTypeEnum", 422, items); } { std::vector items; items.reserve(6); @@ -3909,7 +3938,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("EVENTTIME"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcEventTriggerTypeEnum_type = new enumeration_type("IfcEventTriggerTypeEnum", 424, items); + IFC4X3_RC3_IfcEventTriggerTypeEnum_type = new enumeration_type("IfcEventTriggerTypeEnum", 425, items); } { std::vector items; items.reserve(5); @@ -3918,7 +3947,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("STARTEVENT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcEventTypeEnum_type = new enumeration_type("IfcEventTypeEnum", 426, items); + IFC4X3_RC3_IfcEventTypeEnum_type = new enumeration_type("IfcEventTypeEnum", 427, items); } { std::vector items; items.reserve(6); @@ -3928,7 +3957,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("EXTERNAL_WATER"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcExternalSpatialElementTypeEnum_type = new enumeration_type("IfcExternalSpatialElementTypeEnum", 435, items); + IFC4X3_RC3_IfcExternalSpatialElementTypeEnum_type = new enumeration_type("IfcExternalSpatialElementTypeEnum", 436, items); } { std::vector items; items.reserve(10); @@ -3942,7 +3971,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SUPERSTRUCTURE"); items.push_back("TERMINAL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcFacilityPartCommonTypeEnum_type = new enumeration_type("IfcFacilityPartCommonTypeEnum", 448, items); + IFC4X3_RC3_IfcFacilityPartCommonTypeEnum_type = new enumeration_type("IfcFacilityPartCommonTypeEnum", 449, items); } { std::vector items; items.reserve(6); @@ -3952,7 +3981,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("REGION"); items.push_back("USERDEFINED"); items.push_back("VERTICAL"); - IFC4X3_RC3_IfcFacilityUsageEnum_type = new enumeration_type("IfcFacilityUsageEnum", 450, items); + IFC4X3_RC3_IfcFacilityUsageEnum_type = new enumeration_type("IfcFacilityUsageEnum", 451, items); } { std::vector items; items.reserve(9); @@ -3965,7 +3994,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TUBEAXIAL"); items.push_back("USERDEFINED"); items.push_back("VANEAXIAL"); - IFC4X3_RC3_IfcFanTypeEnum_type = new enumeration_type("IfcFanTypeEnum", 454, items); + IFC4X3_RC3_IfcFanTypeEnum_type = new enumeration_type("IfcFanTypeEnum", 455, items); } { std::vector items; items.reserve(5); @@ -3974,7 +4003,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); items.push_back("WELD"); - IFC4X3_RC3_IfcFastenerTypeEnum_type = new enumeration_type("IfcFastenerTypeEnum", 457, items); + IFC4X3_RC3_IfcFastenerTypeEnum_type = new enumeration_type("IfcFastenerTypeEnum", 458, items); } { std::vector items; items.reserve(8); @@ -3986,7 +4015,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STRAINER"); items.push_back("USERDEFINED"); items.push_back("WATERFILTER"); - IFC4X3_RC3_IfcFilterTypeEnum_type = new enumeration_type("IfcFilterTypeEnum", 467, items); + IFC4X3_RC3_IfcFilterTypeEnum_type = new enumeration_type("IfcFilterTypeEnum", 468, items); } { std::vector items; items.reserve(8); @@ -3998,7 +4027,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SPRINKLER"); items.push_back("SPRINKLERDEFLECTOR"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcFireSuppressionTerminalTypeEnum_type = new enumeration_type("IfcFireSuppressionTerminalTypeEnum", 470, items); + IFC4X3_RC3_IfcFireSuppressionTerminalTypeEnum_type = new enumeration_type("IfcFireSuppressionTerminalTypeEnum", 471, items); } { std::vector items; items.reserve(4); @@ -4006,7 +4035,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SINK"); items.push_back("SOURCE"); items.push_back("SOURCEANDSINK"); - IFC4X3_RC3_IfcFlowDirectionEnum_type = new enumeration_type("IfcFlowDirectionEnum", 474, items); + IFC4X3_RC3_IfcFlowDirectionEnum_type = new enumeration_type("IfcFlowDirectionEnum", 475, items); } { std::vector items; items.reserve(12); @@ -4022,7 +4051,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("VOLTMETER"); items.push_back("VOLTMETER_PEAK"); items.push_back("VOLTMETER_RMS"); - IFC4X3_RC3_IfcFlowInstrumentTypeEnum_type = new enumeration_type("IfcFlowInstrumentTypeEnum", 479, items); + IFC4X3_RC3_IfcFlowInstrumentTypeEnum_type = new enumeration_type("IfcFlowInstrumentTypeEnum", 480, items); } { std::vector items; items.reserve(6); @@ -4032,11 +4061,11 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("OILMETER"); items.push_back("USERDEFINED"); items.push_back("WATERMETER"); - IFC4X3_RC3_IfcFlowMeterTypeEnum_type = new enumeration_type("IfcFlowMeterTypeEnum", 482, items); + IFC4X3_RC3_IfcFlowMeterTypeEnum_type = new enumeration_type("IfcFlowMeterTypeEnum", 483, items); } - IFC4X3_RC3_IfcFontStyle_type = new type_declaration("IfcFontStyle", 493, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcFontVariant_type = new type_declaration("IfcFontVariant", 494, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcFontWeight_type = new type_declaration("IfcFontWeight", 495, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcFontStyle_type = new type_declaration("IfcFontStyle", 494, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcFontVariant_type = new type_declaration("IfcFontVariant", 495, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcFontWeight_type = new type_declaration("IfcFontWeight", 496, new simple_type(simple_type::string_type)); { std::vector items; items.reserve(7); items.push_back("CAISSON_FOUNDATION"); @@ -4046,10 +4075,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PILE_CAP"); items.push_back("STRIP_FOOTING"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcFootingTypeEnum_type = new enumeration_type("IfcFootingTypeEnum", 498, items); + IFC4X3_RC3_IfcFootingTypeEnum_type = new enumeration_type("IfcFootingTypeEnum", 499, items); } - IFC4X3_RC3_IfcForceMeasure_type = new type_declaration("IfcForceMeasure", 499, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcFrequencyMeasure_type = new type_declaration("IfcFrequencyMeasure", 500, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcForceMeasure_type = new type_declaration("IfcForceMeasure", 500, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcFrequencyMeasure_type = new type_declaration("IfcFrequencyMeasure", 501, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(10); items.push_back("BED"); @@ -4062,7 +4091,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TABLE"); items.push_back("TECHNICALCABINET"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcFurnitureTypeEnum_type = new enumeration_type("IfcFurnitureTypeEnum", 505, items); + IFC4X3_RC3_IfcFurnitureTypeEnum_type = new enumeration_type("IfcFurnitureTypeEnum", 506, items); } { std::vector items; items.reserve(4); @@ -4070,7 +4099,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SOIL_BORING_POINT"); items.push_back("TERRAIN"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcGeographicElementTypeEnum_type = new enumeration_type("IfcGeographicElementTypeEnum", 508, items); + IFC4X3_RC3_IfcGeographicElementTypeEnum_type = new enumeration_type("IfcGeographicElementTypeEnum", 509, items); } { std::vector items; items.reserve(9); @@ -4083,15 +4112,15 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SECTION_VIEW"); items.push_back("SKETCH_VIEW"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcGeometricProjectionEnum_type = new enumeration_type("IfcGeometricProjectionEnum", 510, items); + IFC4X3_RC3_IfcGeometricProjectionEnum_type = new enumeration_type("IfcGeometricProjectionEnum", 511, items); } { std::vector items; items.reserve(2); items.push_back("GLOBAL_COORDS"); items.push_back("LOCAL_COORDS"); - IFC4X3_RC3_IfcGlobalOrLocalEnum_type = new enumeration_type("IfcGlobalOrLocalEnum", 522, items); + IFC4X3_RC3_IfcGlobalOrLocalEnum_type = new enumeration_type("IfcGlobalOrLocalEnum", 523, items); } - IFC4X3_RC3_IfcGloballyUniqueId_type = new type_declaration("IfcGloballyUniqueId", 521, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcGloballyUniqueId_type = new type_declaration("IfcGloballyUniqueId", 522, new simple_type(simple_type::string_type)); { std::vector items; items.reserve(6); items.push_back("IRREGULAR"); @@ -4100,7 +4129,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RECTANGULAR"); items.push_back("TRIANGULAR"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcGridTypeEnum_type = new enumeration_type("IfcGridTypeEnum", 528, items); + IFC4X3_RC3_IfcGridTypeEnum_type = new enumeration_type("IfcGridTypeEnum", 529, items); } { std::vector items; items.reserve(5); @@ -4109,10 +4138,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SHELLANDTUBE"); items.push_back("TURNOUTHEATING"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcHeatExchangerTypeEnum_type = new enumeration_type("IfcHeatExchangerTypeEnum", 534, items); + IFC4X3_RC3_IfcHeatExchangerTypeEnum_type = new enumeration_type("IfcHeatExchangerTypeEnum", 535, items); } - IFC4X3_RC3_IfcHeatFluxDensityMeasure_type = new type_declaration("IfcHeatFluxDensityMeasure", 535, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcHeatingValueMeasure_type = new type_declaration("IfcHeatingValueMeasure", 536, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcHeatFluxDensityMeasure_type = new type_declaration("IfcHeatFluxDensityMeasure", 536, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcHeatingValueMeasure_type = new type_declaration("IfcHeatingValueMeasure", 537, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(15); items.push_back("ADIABATICAIRWASHER"); @@ -4130,10 +4159,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("STEAMINJECTION"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcHumidifierTypeEnum_type = new enumeration_type("IfcHumidifierTypeEnum", 539, items); + IFC4X3_RC3_IfcHumidifierTypeEnum_type = new enumeration_type("IfcHumidifierTypeEnum", 540, items); } - IFC4X3_RC3_IfcIdentifier_type = new type_declaration("IfcIdentifier", 540, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcIlluminanceMeasure_type = new type_declaration("IfcIlluminanceMeasure", 541, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcIdentifier_type = new type_declaration("IfcIdentifier", 541, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcIlluminanceMeasure_type = new type_declaration("IfcIlluminanceMeasure", 542, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(6); items.push_back("BUMPER"); @@ -4142,11 +4171,11 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("FENDER"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcImpactProtectionDeviceTypeEnum_type = new enumeration_type("IfcImpactProtectionDeviceTypeEnum", 545, items); + IFC4X3_RC3_IfcImpactProtectionDeviceTypeEnum_type = new enumeration_type("IfcImpactProtectionDeviceTypeEnum", 546, items); } - IFC4X3_RC3_IfcInductanceMeasure_type = new type_declaration("IfcInductanceMeasure", 554, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcInteger_type = new type_declaration("IfcInteger", 555, new simple_type(simple_type::integer_type)); - IFC4X3_RC3_IfcIntegerCountRateMeasure_type = new type_declaration("IfcIntegerCountRateMeasure", 556, new simple_type(simple_type::integer_type)); + IFC4X3_RC3_IfcInductanceMeasure_type = new type_declaration("IfcInductanceMeasure", 555, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcInteger_type = new type_declaration("IfcInteger", 556, new simple_type(simple_type::integer_type)); + IFC4X3_RC3_IfcIntegerCountRateMeasure_type = new type_declaration("IfcIntegerCountRateMeasure", 557, new simple_type(simple_type::integer_type)); { std::vector items; items.reserve(6); items.push_back("CYCLONIC"); @@ -4155,7 +4184,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("OIL"); items.push_back("PETROL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcInterceptorTypeEnum_type = new enumeration_type("IfcInterceptorTypeEnum", 559, items); + IFC4X3_RC3_IfcInterceptorTypeEnum_type = new enumeration_type("IfcInterceptorTypeEnum", 560, items); } { std::vector items; items.reserve(6); @@ -4165,7 +4194,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("EXTERNAL_WATER"); items.push_back("INTERNAL"); items.push_back("NOTDEFINED"); - IFC4X3_RC3_IfcInternalOrExternalEnum_type = new enumeration_type("IfcInternalOrExternalEnum", 561, items); + IFC4X3_RC3_IfcInternalOrExternalEnum_type = new enumeration_type("IfcInternalOrExternalEnum", 562, items); } { std::vector items; items.reserve(5); @@ -4174,28 +4203,28 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SPACEINVENTORY"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcInventoryTypeEnum_type = new enumeration_type("IfcInventoryTypeEnum", 564, items); + IFC4X3_RC3_IfcInventoryTypeEnum_type = new enumeration_type("IfcInventoryTypeEnum", 565, items); } - IFC4X3_RC3_IfcIonConcentrationMeasure_type = new type_declaration("IfcIonConcentrationMeasure", 565, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcIsothermalMoistureCapacityMeasure_type = new type_declaration("IfcIsothermalMoistureCapacityMeasure", 569, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcIonConcentrationMeasure_type = new type_declaration("IfcIonConcentrationMeasure", 566, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcIsothermalMoistureCapacityMeasure_type = new type_declaration("IfcIsothermalMoistureCapacityMeasure", 570, 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"); - IFC4X3_RC3_IfcJunctionBoxTypeEnum_type = new enumeration_type("IfcJunctionBoxTypeEnum", 572, items); + IFC4X3_RC3_IfcJunctionBoxTypeEnum_type = new enumeration_type("IfcJunctionBoxTypeEnum", 573, items); } - IFC4X3_RC3_IfcKinematicViscosityMeasure_type = new type_declaration("IfcKinematicViscosityMeasure", 575, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcKinematicViscosityMeasure_type = new type_declaration("IfcKinematicViscosityMeasure", 576, 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"); - IFC4X3_RC3_IfcKnotType_type = new enumeration_type("IfcKnotType", 576, items); + IFC4X3_RC3_IfcKnotType_type = new enumeration_type("IfcKnotType", 577, items); } - IFC4X3_RC3_IfcLabel_type = new type_declaration("IfcLabel", 577, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcLabel_type = new type_declaration("IfcLabel", 578, new simple_type(simple_type::string_type)); { std::vector items; items.reserve(21); items.push_back("ADMINISTRATION"); @@ -4219,7 +4248,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STEELWORK"); items.push_back("SURVEYING"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcLaborResourceTypeEnum_type = new enumeration_type("IfcLaborResourceTypeEnum", 580, items); + IFC4X3_RC3_IfcLaborResourceTypeEnum_type = new enumeration_type("IfcLaborResourceTypeEnum", 581, items); } { std::vector items; items.reserve(11); @@ -4234,24 +4263,24 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("OLED"); items.push_back("TUNGSTENFILAMENT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcLampTypeEnum_type = new enumeration_type("IfcLampTypeEnum", 584, items); + IFC4X3_RC3_IfcLampTypeEnum_type = new enumeration_type("IfcLampTypeEnum", 585, items); } - IFC4X3_RC3_IfcLanguageId_type = new type_declaration("IfcLanguageId", 585, new named_type(IFC4X3_RC3_IfcIdentifier_type)); + IFC4X3_RC3_IfcLanguageId_type = new type_declaration("IfcLanguageId", 586, new named_type(IFC4X3_RC3_IfcIdentifier_type)); { std::vector items; items.reserve(3); items.push_back("AXIS1"); items.push_back("AXIS2"); items.push_back("AXIS3"); - IFC4X3_RC3_IfcLayerSetDirectionEnum_type = new enumeration_type("IfcLayerSetDirectionEnum", 587, items); + IFC4X3_RC3_IfcLayerSetDirectionEnum_type = new enumeration_type("IfcLayerSetDirectionEnum", 588, items); } - IFC4X3_RC3_IfcLengthMeasure_type = new type_declaration("IfcLengthMeasure", 588, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcLengthMeasure_type = new type_declaration("IfcLengthMeasure", 589, 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"); - IFC4X3_RC3_IfcLightDistributionCurveEnum_type = new enumeration_type("IfcLightDistributionCurveEnum", 592, items); + IFC4X3_RC3_IfcLightDistributionCurveEnum_type = new enumeration_type("IfcLightDistributionCurveEnum", 593, items); } { std::vector items; items.reserve(11); @@ -4266,7 +4295,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("METALHALIDE"); items.push_back("NOTDEFINED"); items.push_back("TUNGSTENFILAMENT"); - IFC4X3_RC3_IfcLightEmissionSourceEnum_type = new enumeration_type("IfcLightEmissionSourceEnum", 595, items); + IFC4X3_RC3_IfcLightEmissionSourceEnum_type = new enumeration_type("IfcLightEmissionSourceEnum", 596, items); } { std::vector items; items.reserve(5); @@ -4275,19 +4304,19 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("POINTSOURCE"); items.push_back("SECURITYLIGHTING"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcLightFixtureTypeEnum_type = new enumeration_type("IfcLightFixtureTypeEnum", 598, items); + IFC4X3_RC3_IfcLightFixtureTypeEnum_type = new enumeration_type("IfcLightFixtureTypeEnum", 599, items); } - IFC4X3_RC3_IfcLinearForceMeasure_type = new type_declaration("IfcLinearForceMeasure", 608, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcLinearMomentMeasure_type = new type_declaration("IfcLinearMomentMeasure", 609, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcLinearStiffnessMeasure_type = new type_declaration("IfcLinearStiffnessMeasure", 612, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcLinearVelocityMeasure_type = new type_declaration("IfcLinearVelocityMeasure", 613, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcLinearForceMeasure_type = new type_declaration("IfcLinearForceMeasure", 609, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcLinearMomentMeasure_type = new type_declaration("IfcLinearMomentMeasure", 610, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcLinearStiffnessMeasure_type = new type_declaration("IfcLinearStiffnessMeasure", 613, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcLinearVelocityMeasure_type = new type_declaration("IfcLinearVelocityMeasure", 614, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(4); items.push_back("HOSEREEL"); items.push_back("LOADINGARM"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcLiquidTerminalTypeEnum_type = new enumeration_type("IfcLiquidTerminalTypeEnum", 617, items); + IFC4X3_RC3_IfcLiquidTerminalTypeEnum_type = new enumeration_type("IfcLiquidTerminalTypeEnum", 618, items); } { std::vector items; items.reserve(5); @@ -4296,9 +4325,9 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("LOAD_GROUP"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcLoadGroupTypeEnum_type = new enumeration_type("IfcLoadGroupTypeEnum", 618, items); + IFC4X3_RC3_IfcLoadGroupTypeEnum_type = new enumeration_type("IfcLoadGroupTypeEnum", 619, items); } - IFC4X3_RC3_IfcLogical_type = new type_declaration("IfcLogical", 620, new simple_type(simple_type::logical_type)); + IFC4X3_RC3_IfcLogical_type = new type_declaration("IfcLogical", 621, new simple_type(simple_type::logical_type)); { std::vector items; items.reserve(5); items.push_back("LOGICALAND"); @@ -4306,13 +4335,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("LOGICALNOTOR"); items.push_back("LOGICALOR"); items.push_back("LOGICALXOR"); - IFC4X3_RC3_IfcLogicalOperatorEnum_type = new enumeration_type("IfcLogicalOperatorEnum", 621, items); + IFC4X3_RC3_IfcLogicalOperatorEnum_type = new enumeration_type("IfcLogicalOperatorEnum", 622, items); } - IFC4X3_RC3_IfcLuminousFluxMeasure_type = new type_declaration("IfcLuminousFluxMeasure", 624, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcLuminousIntensityDistributionMeasure_type = new type_declaration("IfcLuminousIntensityDistributionMeasure", 625, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcLuminousIntensityMeasure_type = new type_declaration("IfcLuminousIntensityMeasure", 626, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMagneticFluxDensityMeasure_type = new type_declaration("IfcMagneticFluxDensityMeasure", 627, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMagneticFluxMeasure_type = new type_declaration("IfcMagneticFluxMeasure", 628, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcLuminousFluxMeasure_type = new type_declaration("IfcLuminousFluxMeasure", 625, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcLuminousIntensityDistributionMeasure_type = new type_declaration("IfcLuminousIntensityDistributionMeasure", 626, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcLuminousIntensityMeasure_type = new type_declaration("IfcLuminousIntensityMeasure", 627, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMagneticFluxDensityMeasure_type = new type_declaration("IfcMagneticFluxDensityMeasure", 628, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMagneticFluxMeasure_type = new type_declaration("IfcMagneticFluxMeasure", 629, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(21); items.push_back("BARRIERBEACH"); @@ -4336,7 +4365,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("USERDEFINED"); items.push_back("WATERWAY"); items.push_back("WATERWAYSHIPLIFT"); - IFC4X3_RC3_IfcMarineFacilityTypeEnum_type = new enumeration_type("IfcMarineFacilityTypeEnum", 633, items); + IFC4X3_RC3_IfcMarineFacilityTypeEnum_type = new enumeration_type("IfcMarineFacilityTypeEnum", 634, items); } { std::vector items; items.reserve(26); @@ -4366,12 +4395,12 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("VEHICLESERVICING"); items.push_back("WATERFIELD"); items.push_back("WEATHERSIDE"); - IFC4X3_RC3_IfcMarinePartTypeEnum_type = new enumeration_type("IfcMarinePartTypeEnum", 634, items); + IFC4X3_RC3_IfcMarinePartTypeEnum_type = new enumeration_type("IfcMarinePartTypeEnum", 635, items); } - IFC4X3_RC3_IfcMassDensityMeasure_type = new type_declaration("IfcMassDensityMeasure", 635, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMassFlowRateMeasure_type = new type_declaration("IfcMassFlowRateMeasure", 636, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMassMeasure_type = new type_declaration("IfcMassMeasure", 637, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMassPerLengthMeasure_type = new type_declaration("IfcMassPerLengthMeasure", 638, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMassDensityMeasure_type = new type_declaration("IfcMassDensityMeasure", 636, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMassFlowRateMeasure_type = new type_declaration("IfcMassFlowRateMeasure", 637, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMassMeasure_type = new type_declaration("IfcMassMeasure", 638, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMassPerLengthMeasure_type = new type_declaration("IfcMassPerLengthMeasure", 639, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(17); items.push_back("ANCHORBOLT"); @@ -4391,7 +4420,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STAPLE"); items.push_back("STUDSHEARCONNECTOR"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcMechanicalFastenerTypeEnum_type = new enumeration_type("IfcMechanicalFastenerTypeEnum", 663, items); + IFC4X3_RC3_IfcMechanicalFastenerTypeEnum_type = new enumeration_type("IfcMechanicalFastenerTypeEnum", 664, items); } { std::vector items; items.reserve(7); @@ -4402,7 +4431,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("OXYGENPLANT"); items.push_back("USERDEFINED"); items.push_back("VACUUMSTATION"); - IFC4X3_RC3_IfcMedicalDeviceTypeEnum_type = new enumeration_type("IfcMedicalDeviceTypeEnum", 666, items); + IFC4X3_RC3_IfcMedicalDeviceTypeEnum_type = new enumeration_type("IfcMedicalDeviceTypeEnum", 667, items); } { std::vector items; items.reserve(21); @@ -4427,7 +4456,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SUSPENSION_CABLE"); items.push_back("TIEBAR"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcMemberTypeEnum_type = new enumeration_type("IfcMemberTypeEnum", 670, items); + IFC4X3_RC3_IfcMemberTypeEnum_type = new enumeration_type("IfcMemberTypeEnum", 671, items); } { std::vector items; items.reserve(9); @@ -4440,35 +4469,35 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("REMOTEUNIT"); items.push_back("REMOTE_RADIO_UNIT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcMobileTelecommunicationsApplianceTypeEnum_type = new enumeration_type("IfcMobileTelecommunicationsApplianceTypeEnum", 676, items); + IFC4X3_RC3_IfcMobileTelecommunicationsApplianceTypeEnum_type = new enumeration_type("IfcMobileTelecommunicationsApplianceTypeEnum", 677, items); } - IFC4X3_RC3_IfcModulusOfElasticityMeasure_type = new type_declaration("IfcModulusOfElasticityMeasure", 677, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcModulusOfLinearSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfLinearSubgradeReactionMeasure", 678, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcModulusOfRotationalSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfRotationalSubgradeReactionMeasure", 679, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcModulusOfElasticityMeasure_type = new type_declaration("IfcModulusOfElasticityMeasure", 678, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcModulusOfLinearSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfLinearSubgradeReactionMeasure", 679, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcModulusOfRotationalSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfRotationalSubgradeReactionMeasure", 680, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcBoolean_type); items.push_back(IFC4X3_RC3_IfcModulusOfRotationalSubgradeReactionMeasure_type); - IFC4X3_RC3_IfcModulusOfRotationalSubgradeReactionSelect_type = new select_type("IfcModulusOfRotationalSubgradeReactionSelect", 680, items); + IFC4X3_RC3_IfcModulusOfRotationalSubgradeReactionSelect_type = new select_type("IfcModulusOfRotationalSubgradeReactionSelect", 681, items); } - IFC4X3_RC3_IfcModulusOfSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfSubgradeReactionMeasure", 681, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcModulusOfSubgradeReactionMeasure_type = new type_declaration("IfcModulusOfSubgradeReactionMeasure", 682, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcBoolean_type); items.push_back(IFC4X3_RC3_IfcModulusOfSubgradeReactionMeasure_type); - IFC4X3_RC3_IfcModulusOfSubgradeReactionSelect_type = new select_type("IfcModulusOfSubgradeReactionSelect", 682, items); + IFC4X3_RC3_IfcModulusOfSubgradeReactionSelect_type = new select_type("IfcModulusOfSubgradeReactionSelect", 683, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcBoolean_type); items.push_back(IFC4X3_RC3_IfcModulusOfLinearSubgradeReactionMeasure_type); - IFC4X3_RC3_IfcModulusOfTranslationalSubgradeReactionSelect_type = new select_type("IfcModulusOfTranslationalSubgradeReactionSelect", 683, items); + IFC4X3_RC3_IfcModulusOfTranslationalSubgradeReactionSelect_type = new select_type("IfcModulusOfTranslationalSubgradeReactionSelect", 684, items); } - IFC4X3_RC3_IfcMoistureDiffusivityMeasure_type = new type_declaration("IfcMoistureDiffusivityMeasure", 684, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMolecularWeightMeasure_type = new type_declaration("IfcMolecularWeightMeasure", 685, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMomentOfInertiaMeasure_type = new type_declaration("IfcMomentOfInertiaMeasure", 686, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMonetaryMeasure_type = new type_declaration("IfcMonetaryMeasure", 687, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcMonthInYearNumber_type = new type_declaration("IfcMonthInYearNumber", 689, new simple_type(simple_type::integer_type)); + IFC4X3_RC3_IfcMoistureDiffusivityMeasure_type = new type_declaration("IfcMoistureDiffusivityMeasure", 685, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMolecularWeightMeasure_type = new type_declaration("IfcMolecularWeightMeasure", 686, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMomentOfInertiaMeasure_type = new type_declaration("IfcMomentOfInertiaMeasure", 687, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMonetaryMeasure_type = new type_declaration("IfcMonetaryMeasure", 688, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcMonthInYearNumber_type = new type_declaration("IfcMonthInYearNumber", 690, new simple_type(simple_type::integer_type)); { std::vector items; items.reserve(7); items.push_back("BOLLARD"); @@ -4478,7 +4507,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); items.push_back("VACUUMDEVICE"); - IFC4X3_RC3_IfcMooringDeviceTypeEnum_type = new enumeration_type("IfcMooringDeviceTypeEnum", 692, items); + IFC4X3_RC3_IfcMooringDeviceTypeEnum_type = new enumeration_type("IfcMooringDeviceTypeEnum", 693, items); } { std::vector items; items.reserve(5); @@ -4487,7 +4516,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("DIRECTDRIVE"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcMotorConnectionTypeEnum_type = new enumeration_type("IfcMotorConnectionTypeEnum", 695, items); + IFC4X3_RC3_IfcMotorConnectionTypeEnum_type = new enumeration_type("IfcMotorConnectionTypeEnum", 696, items); } { std::vector items; items.reserve(4); @@ -4495,10 +4524,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("BUOY"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcNavigationElementTypeEnum_type = new enumeration_type("IfcNavigationElementTypeEnum", 699, items); + IFC4X3_RC3_IfcNavigationElementTypeEnum_type = new enumeration_type("IfcNavigationElementTypeEnum", 700, items); } - IFC4X3_RC3_IfcNonNegativeLengthMeasure_type = new type_declaration("IfcNonNegativeLengthMeasure", 700, new named_type(IFC4X3_RC3_IfcLengthMeasure_type)); - IFC4X3_RC3_IfcNumericMeasure_type = new type_declaration("IfcNumericMeasure", 702, new simple_type(simple_type::number_type)); + IFC4X3_RC3_IfcNonNegativeLengthMeasure_type = new type_declaration("IfcNonNegativeLengthMeasure", 701, new named_type(IFC4X3_RC3_IfcLengthMeasure_type)); + IFC4X3_RC3_IfcNumericMeasure_type = new type_declaration("IfcNumericMeasure", 703, new simple_type(simple_type::number_type)); { std::vector items; items.reserve(8); items.push_back("ACTOR"); @@ -4509,7 +4538,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PRODUCT"); items.push_back("PROJECT"); items.push_back("RESOURCE"); - IFC4X3_RC3_IfcObjectTypeEnum_type = new enumeration_type("IfcObjectTypeEnum", 709, items); + IFC4X3_RC3_IfcObjectTypeEnum_type = new enumeration_type("IfcObjectTypeEnum", 710, items); } { std::vector items; items.reserve(13); @@ -4526,7 +4555,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SPECIFICATION"); items.push_back("TRIGGERCONDITION"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcObjectiveEnum_type = new enumeration_type("IfcObjectiveEnum", 706, items); + IFC4X3_RC3_IfcObjectiveEnum_type = new enumeration_type("IfcObjectiveEnum", 707, items); } { std::vector items; items.reserve(9); @@ -4539,7 +4568,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("OWNER"); items.push_back("TENANT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcOccupantTypeEnum_type = new enumeration_type("IfcOccupantTypeEnum", 711, items); + IFC4X3_RC3_IfcOccupantTypeEnum_type = new enumeration_type("IfcOccupantTypeEnum", 712, items); } { std::vector items; items.reserve(4); @@ -4547,7 +4576,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("OPENING"); items.push_back("RECESS"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcOpeningElementTypeEnum_type = new enumeration_type("IfcOpeningElementTypeEnum", 718, items); + IFC4X3_RC3_IfcOpeningElementTypeEnum_type = new enumeration_type("IfcOpeningElementTypeEnum", 719, items); } { std::vector items; items.reserve(7); @@ -4558,15 +4587,23 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("POWEROUTLET"); items.push_back("TELEPHONEOUTLET"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcOutletTypeEnum_type = new enumeration_type("IfcOutletTypeEnum", 727, items); + IFC4X3_RC3_IfcOutletTypeEnum_type = new enumeration_type("IfcOutletTypeEnum", 728, items); + } + IFC4X3_RC3_IfcPHMeasure_type = new type_declaration("IfcPHMeasure", 745, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcParameterValue_type = new type_declaration("IfcParameterValue", 731, new simple_type(simple_type::real_type)); + { + std::vector items; items.reserve(4); + items.push_back("FLEXIBLE"); + items.push_back("NOTDEFINED"); + items.push_back("RIGID"); + items.push_back("USERDEFINED"); + IFC4X3_RC3_IfcPavementTypeEnum_type = new enumeration_type("IfcPavementTypeEnum", 735, items); } - IFC4X3_RC3_IfcPHMeasure_type = new type_declaration("IfcPHMeasure", 743, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcParameterValue_type = new type_declaration("IfcParameterValue", 730, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type = new enumeration_type("IfcPerformanceHistoryTypeEnum", 736, items); + IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type = new enumeration_type("IfcPerformanceHistoryTypeEnum", 738, items); } { std::vector items; items.reserve(5); @@ -4575,7 +4612,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SCREEN"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcPermeableCoveringOperationEnum_type = new enumeration_type("IfcPermeableCoveringOperationEnum", 737, items); + IFC4X3_RC3_IfcPermeableCoveringOperationEnum_type = new enumeration_type("IfcPermeableCoveringOperationEnum", 739, items); } { std::vector items; items.reserve(5); @@ -4584,14 +4621,14 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); items.push_back("WORK"); - IFC4X3_RC3_IfcPermitTypeEnum_type = new enumeration_type("IfcPermitTypeEnum", 740, items); + IFC4X3_RC3_IfcPermitTypeEnum_type = new enumeration_type("IfcPermitTypeEnum", 742, items); } { std::vector items; items.reserve(3); items.push_back("NOTDEFINED"); items.push_back("PHYSICAL"); items.push_back("VIRTUAL"); - IFC4X3_RC3_IfcPhysicalOrVirtualEnum_type = new enumeration_type("IfcPhysicalOrVirtualEnum", 745, items); + IFC4X3_RC3_IfcPhysicalOrVirtualEnum_type = new enumeration_type("IfcPhysicalOrVirtualEnum", 747, items); } { std::vector items; items.reserve(6); @@ -4601,7 +4638,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PRECAST_CONCRETE"); items.push_back("PREFAB_STEEL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcPileConstructionEnum_type = new enumeration_type("IfcPileConstructionEnum", 749, items); + IFC4X3_RC3_IfcPileConstructionEnum_type = new enumeration_type("IfcPileConstructionEnum", 751, items); } { std::vector items; items.reserve(8); @@ -4613,7 +4650,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SUPPORT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcPileTypeEnum_type = new enumeration_type("IfcPileTypeEnum", 751, items); + IFC4X3_RC3_IfcPileTypeEnum_type = new enumeration_type("IfcPileTypeEnum", 753, items); } { std::vector items; items.reserve(9); @@ -4626,7 +4663,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("OBSTRUCTION"); items.push_back("TRANSITION"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcPipeFittingTypeEnum_type = new enumeration_type("IfcPipeFittingTypeEnum", 754, items); + IFC4X3_RC3_IfcPipeFittingTypeEnum_type = new enumeration_type("IfcPipeFittingTypeEnum", 756, items); } { std::vector items; items.reserve(7); @@ -4637,10 +4674,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RIGIDSEGMENT"); items.push_back("SPOOL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcPipeSegmentTypeEnum_type = new enumeration_type("IfcPipeSegmentTypeEnum", 757, items); + IFC4X3_RC3_IfcPipeSegmentTypeEnum_type = new enumeration_type("IfcPipeSegmentTypeEnum", 759, items); } - IFC4X3_RC3_IfcPlanarForceMeasure_type = new type_declaration("IfcPlanarForceMeasure", 762, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcPlaneAngleMeasure_type = new type_declaration("IfcPlaneAngleMeasure", 764, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcPlanarForceMeasure_type = new type_declaration("IfcPlanarForceMeasure", 764, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcPlaneAngleMeasure_type = new type_declaration("IfcPlaneAngleMeasure", 766, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(11); items.push_back("BASE_PLATE"); @@ -4654,21 +4691,21 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STIFFENER_PLATE"); items.push_back("USERDEFINED"); items.push_back("WEB_PLATE"); - IFC4X3_RC3_IfcPlateTypeEnum_type = new enumeration_type("IfcPlateTypeEnum", 769, items); + IFC4X3_RC3_IfcPlateTypeEnum_type = new enumeration_type("IfcPlateTypeEnum", 771, items); } - IFC4X3_RC3_IfcPositiveInteger_type = new type_declaration("IfcPositiveInteger", 782, new named_type(IFC4X3_RC3_IfcInteger_type)); - IFC4X3_RC3_IfcPositiveLengthMeasure_type = new type_declaration("IfcPositiveLengthMeasure", 783, new named_type(IFC4X3_RC3_IfcLengthMeasure_type)); - IFC4X3_RC3_IfcPositivePlaneAngleMeasure_type = new type_declaration("IfcPositivePlaneAngleMeasure", 784, new named_type(IFC4X3_RC3_IfcPlaneAngleMeasure_type)); - IFC4X3_RC3_IfcPowerMeasure_type = new type_declaration("IfcPowerMeasure", 787, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcPositiveInteger_type = new type_declaration("IfcPositiveInteger", 784, new named_type(IFC4X3_RC3_IfcInteger_type)); + IFC4X3_RC3_IfcPositiveLengthMeasure_type = new type_declaration("IfcPositiveLengthMeasure", 785, new named_type(IFC4X3_RC3_IfcLengthMeasure_type)); + IFC4X3_RC3_IfcPositivePlaneAngleMeasure_type = new type_declaration("IfcPositivePlaneAngleMeasure", 786, new named_type(IFC4X3_RC3_IfcPlaneAngleMeasure_type)); + IFC4X3_RC3_IfcPowerMeasure_type = new type_declaration("IfcPowerMeasure", 789, 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"); - IFC4X3_RC3_IfcPreferredSurfaceCurveRepresentation_type = new enumeration_type("IfcPreferredSurfaceCurveRepresentation", 794, items); + IFC4X3_RC3_IfcPreferredSurfaceCurveRepresentation_type = new enumeration_type("IfcPreferredSurfaceCurveRepresentation", 796, items); } - IFC4X3_RC3_IfcPresentableText_type = new type_declaration("IfcPresentableText", 795, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcPressureMeasure_type = new type_declaration("IfcPressureMeasure", 800, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcPresentableText_type = new type_declaration("IfcPresentableText", 797, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcPressureMeasure_type = new type_declaration("IfcPressureMeasure", 802, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(9); items.push_back("ADVICE_CAUTION"); @@ -4680,13 +4717,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SHUTDOWN"); items.push_back("STARTUP"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcProcedureTypeEnum_type = new enumeration_type("IfcProcedureTypeEnum", 803, items); + IFC4X3_RC3_IfcProcedureTypeEnum_type = new enumeration_type("IfcProcedureTypeEnum", 805, items); } { std::vector items; items.reserve(2); items.push_back("AREA"); items.push_back("CURVE"); - IFC4X3_RC3_IfcProfileTypeEnum_type = new enumeration_type("IfcProfileTypeEnum", 813, items); + IFC4X3_RC3_IfcProfileTypeEnum_type = new enumeration_type("IfcProfileTypeEnum", 815, items); } { std::vector items; items.reserve(7); @@ -4697,13 +4734,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PURCHASEORDER"); items.push_back("USERDEFINED"); items.push_back("WORKORDER"); - IFC4X3_RC3_IfcProjectOrderTypeEnum_type = new enumeration_type("IfcProjectOrderTypeEnum", 821, items); + IFC4X3_RC3_IfcProjectOrderTypeEnum_type = new enumeration_type("IfcProjectOrderTypeEnum", 823, items); } { std::vector items; items.reserve(2); items.push_back("PROJECTED_LENGTH"); items.push_back("TRUE_LENGTH"); - IFC4X3_RC3_IfcProjectedOrTrueLengthEnum_type = new enumeration_type("IfcProjectedOrTrueLengthEnum", 816, items); + IFC4X3_RC3_IfcProjectedOrTrueLengthEnum_type = new enumeration_type("IfcProjectedOrTrueLengthEnum", 818, items); } { std::vector items; items.reserve(4); @@ -4711,7 +4748,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("DEVIATOR"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcProjectionElementTypeEnum_type = new enumeration_type("IfcProjectionElementTypeEnum", 818, items); + IFC4X3_RC3_IfcProjectionElementTypeEnum_type = new enumeration_type("IfcProjectionElementTypeEnum", 820, items); } { std::vector items; items.reserve(8); @@ -4723,7 +4760,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("QTO_OCCURRENCEDRIVEN"); items.push_back("QTO_TYPEDRIVENONLY"); items.push_back("QTO_TYPEDRIVENOVERRIDE"); - IFC4X3_RC3_IfcPropertySetTemplateTypeEnum_type = new enumeration_type("IfcPropertySetTemplateTypeEnum", 836, items); + IFC4X3_RC3_IfcPropertySetTemplateTypeEnum_type = new enumeration_type("IfcPropertySetTemplateTypeEnum", 838, items); } { std::vector items; items.reserve(6); @@ -4733,7 +4770,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RESIDUALCURRENT"); items.push_back("THERMAL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcProtectiveDeviceTrippingUnitTypeEnum_type = new enumeration_type("IfcProtectiveDeviceTrippingUnitTypeEnum", 844, items); + IFC4X3_RC3_IfcProtectiveDeviceTrippingUnitTypeEnum_type = new enumeration_type("IfcProtectiveDeviceTrippingUnitTypeEnum", 846, items); } { std::vector items; items.reserve(12); @@ -4749,7 +4786,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("USERDEFINED"); items.push_back("VARISTOR"); items.push_back("VOLTAGELIMITER"); - IFC4X3_RC3_IfcProtectiveDeviceTypeEnum_type = new enumeration_type("IfcProtectiveDeviceTypeEnum", 846, items); + IFC4X3_RC3_IfcProtectiveDeviceTypeEnum_type = new enumeration_type("IfcProtectiveDeviceTypeEnum", 848, items); } { std::vector items; items.reserve(9); @@ -4762,9 +4799,9 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("USERDEFINED"); items.push_back("VERTICALINLINE"); items.push_back("VERTICALTURBINE"); - IFC4X3_RC3_IfcPumpTypeEnum_type = new enumeration_type("IfcPumpTypeEnum", 850, items); + IFC4X3_RC3_IfcPumpTypeEnum_type = new enumeration_type("IfcPumpTypeEnum", 852, items); } - IFC4X3_RC3_IfcRadioActivityMeasure_type = new type_declaration("IfcRadioActivityMeasure", 858, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcRadioActivityMeasure_type = new type_declaration("IfcRadioActivityMeasure", 860, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(8); items.push_back("BLADE"); @@ -4775,7 +4812,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RAIL"); items.push_back("STOCKRAIL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRailTypeEnum_type = new enumeration_type("IfcRailTypeEnum", 864, items); + IFC4X3_RC3_IfcRailTypeEnum_type = new enumeration_type("IfcRailTypeEnum", 866, items); } { std::vector items; items.reserve(6); @@ -4785,7 +4822,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("HANDRAIL"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRailingTypeEnum_type = new enumeration_type("IfcRailingTypeEnum", 862, items); + IFC4X3_RC3_IfcRailingTypeEnum_type = new enumeration_type("IfcRailingTypeEnum", 864, items); } { std::vector items; items.reserve(10); @@ -4799,13 +4836,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRACKSTRUCTUREPART"); items.push_back("TURNOUTSUPERSTRUCTURE"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRailwayPartTypeEnum_type = new enumeration_type("IfcRailwayPartTypeEnum", 866, items); + IFC4X3_RC3_IfcRailwayPartTypeEnum_type = new enumeration_type("IfcRailwayPartTypeEnum", 868, items); } { std::vector items; items.reserve(2); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRailwayTypeEnum_type = new enumeration_type("IfcRailwayTypeEnum", 867, items); + IFC4X3_RC3_IfcRailwayTypeEnum_type = new enumeration_type("IfcRailwayTypeEnum", 869, items); } { std::vector items; items.reserve(4); @@ -4813,7 +4850,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SPIRAL"); items.push_back("STRAIGHT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRampFlightTypeEnum_type = new enumeration_type("IfcRampFlightTypeEnum", 871, items); + IFC4X3_RC3_IfcRampFlightTypeEnum_type = new enumeration_type("IfcRampFlightTypeEnum", 873, items); } { std::vector items; items.reserve(8); @@ -4825,10 +4862,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TWO_QUARTER_TURN_RAMP"); items.push_back("TWO_STRAIGHT_RUN_RAMP"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRampTypeEnum_type = new enumeration_type("IfcRampTypeEnum", 873, items); + IFC4X3_RC3_IfcRampTypeEnum_type = new enumeration_type("IfcRampTypeEnum", 875, items); } - IFC4X3_RC3_IfcRatioMeasure_type = new type_declaration("IfcRatioMeasure", 874, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcReal_type = new type_declaration("IfcReal", 877, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcRatioMeasure_type = new type_declaration("IfcRatioMeasure", 876, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcReal_type = new type_declaration("IfcReal", 879, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(8); items.push_back("BY_DAY_COUNT"); @@ -4839,7 +4876,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("WEEKLY"); items.push_back("YEARLY_BY_DAY_OF_MONTH"); items.push_back("YEARLY_BY_POSITION"); - IFC4X3_RC3_IfcRecurrenceTypeEnum_type = new enumeration_type("IfcRecurrenceTypeEnum", 883, items); + IFC4X3_RC3_IfcRecurrenceTypeEnum_type = new enumeration_type("IfcRecurrenceTypeEnum", 885, items); } { std::vector items; items.reserve(6); @@ -4849,7 +4886,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("REFERENCEMARKER"); items.push_back("STATION"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcReferentTypeEnum_type = new enumeration_type("IfcReferentTypeEnum", 886, items); + IFC4X3_RC3_IfcReferentTypeEnum_type = new enumeration_type("IfcReferentTypeEnum", 888, items); } { std::vector items; items.reserve(10); @@ -4863,7 +4900,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PHONG"); items.push_back("PLASTIC"); items.push_back("STRAUSS"); - IFC4X3_RC3_IfcReflectanceMethodEnum_type = new enumeration_type("IfcReflectanceMethodEnum", 887, items); + IFC4X3_RC3_IfcReflectanceMethodEnum_type = new enumeration_type("IfcReflectanceMethodEnum", 889, items); } { std::vector items; items.reserve(8); @@ -4875,7 +4912,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SURCHARGEPRELOADED"); items.push_back("USERDEFINED"); items.push_back("VERTICALLYDRAINED"); - IFC4X3_RC3_IfcReinforcedSoilTypeEnum_type = new enumeration_type("IfcReinforcedSoilTypeEnum", 890, items); + IFC4X3_RC3_IfcReinforcedSoilTypeEnum_type = new enumeration_type("IfcReinforcedSoilTypeEnum", 892, items); } { std::vector items; items.reserve(10); @@ -4889,13 +4926,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SHEAR"); items.push_back("STUD"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcReinforcingBarRoleEnum_type = new enumeration_type("IfcReinforcingBarRoleEnum", 894, items); + IFC4X3_RC3_IfcReinforcingBarRoleEnum_type = new enumeration_type("IfcReinforcingBarRoleEnum", 896, items); } { std::vector items; items.reserve(2); items.push_back("PLAIN"); items.push_back("TEXTURED"); - IFC4X3_RC3_IfcReinforcingBarSurfaceEnum_type = new enumeration_type("IfcReinforcingBarSurfaceEnum", 895, items); + IFC4X3_RC3_IfcReinforcingBarSurfaceEnum_type = new enumeration_type("IfcReinforcingBarSurfaceEnum", 897, items); } { std::vector items; items.reserve(11); @@ -4910,13 +4947,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SPACEBAR"); items.push_back("STUD"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcReinforcingBarTypeEnum_type = new enumeration_type("IfcReinforcingBarTypeEnum", 897, items); + IFC4X3_RC3_IfcReinforcingBarTypeEnum_type = new enumeration_type("IfcReinforcingBarTypeEnum", 899, items); } { std::vector items; items.reserve(2); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcReinforcingMeshTypeEnum_type = new enumeration_type("IfcReinforcingMeshTypeEnum", 902, items); + IFC4X3_RC3_IfcReinforcingMeshTypeEnum_type = new enumeration_type("IfcReinforcingMeshTypeEnum", 904, items); } { std::vector items; items.reserve(26); @@ -4946,13 +4983,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRAFFICISLAND"); items.push_back("TRAFFICLANE"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRoadPartTypeEnum_type = new enumeration_type("IfcRoadPartTypeEnum", 970, items); + IFC4X3_RC3_IfcRoadPartTypeEnum_type = new enumeration_type("IfcRoadPartTypeEnum", 972, items); } { std::vector items; items.reserve(2); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRoadTypeEnum_type = new enumeration_type("IfcRoadTypeEnum", 971, items); + IFC4X3_RC3_IfcRoadTypeEnum_type = new enumeration_type("IfcRoadTypeEnum", 973, items); } { std::vector items; items.reserve(23); @@ -4979,7 +5016,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SUBCONTRACTOR"); items.push_back("SUPPLIER"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRoleEnum_type = new enumeration_type("IfcRoleEnum", 972, items); + IFC4X3_RC3_IfcRoleEnum_type = new enumeration_type("IfcRoleEnum", 974, items); } { std::vector items; items.reserve(15); @@ -4998,16 +5035,16 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RAINBOW_ROOF"); items.push_back("SHED_ROOF"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcRoofTypeEnum_type = new enumeration_type("IfcRoofTypeEnum", 975, items); + IFC4X3_RC3_IfcRoofTypeEnum_type = new enumeration_type("IfcRoofTypeEnum", 977, items); } - IFC4X3_RC3_IfcRotationalFrequencyMeasure_type = new type_declaration("IfcRotationalFrequencyMeasure", 977, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcRotationalMassMeasure_type = new type_declaration("IfcRotationalMassMeasure", 978, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcRotationalStiffnessMeasure_type = new type_declaration("IfcRotationalStiffnessMeasure", 979, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcRotationalFrequencyMeasure_type = new type_declaration("IfcRotationalFrequencyMeasure", 979, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcRotationalMassMeasure_type = new type_declaration("IfcRotationalMassMeasure", 980, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcRotationalStiffnessMeasure_type = new type_declaration("IfcRotationalStiffnessMeasure", 981, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcBoolean_type); items.push_back(IFC4X3_RC3_IfcRotationalStiffnessMeasure_type); - IFC4X3_RC3_IfcRotationalStiffnessSelect_type = new select_type("IfcRotationalStiffnessSelect", 980, items); + IFC4X3_RC3_IfcRotationalStiffnessSelect_type = new select_type("IfcRotationalStiffnessSelect", 982, items); } { std::vector items; items.reserve(16); @@ -5027,7 +5064,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PETA"); items.push_back("PICO"); items.push_back("TERA"); - IFC4X3_RC3_IfcSIPrefix_type = new enumeration_type("IfcSIPrefix", 1024, items); + IFC4X3_RC3_IfcSIPrefix_type = new enumeration_type("IfcSIPrefix", 1026, items); } { std::vector items; items.reserve(30); @@ -5061,7 +5098,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("VOLT"); items.push_back("WATT"); items.push_back("WEBER"); - IFC4X3_RC3_IfcSIUnitName_type = new enumeration_type("IfcSIUnitName", 1027, items); + IFC4X3_RC3_IfcSIUnitName_type = new enumeration_type("IfcSIUnitName", 1029, items); } { std::vector items; items.reserve(12); @@ -5077,16 +5114,16 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("USERDEFINED"); items.push_back("WASHHANDBASIN"); items.push_back("WCSEAT"); - IFC4X3_RC3_IfcSanitaryTerminalTypeEnum_type = new enumeration_type("IfcSanitaryTerminalTypeEnum", 984, items); + IFC4X3_RC3_IfcSanitaryTerminalTypeEnum_type = new enumeration_type("IfcSanitaryTerminalTypeEnum", 986, items); } - IFC4X3_RC3_IfcSectionModulusMeasure_type = new type_declaration("IfcSectionModulusMeasure", 993, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSectionModulusMeasure_type = new type_declaration("IfcSectionModulusMeasure", 995, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back("TAPERED"); items.push_back("UNIFORM"); - IFC4X3_RC3_IfcSectionTypeEnum_type = new enumeration_type("IfcSectionTypeEnum", 996, items); + IFC4X3_RC3_IfcSectionTypeEnum_type = new enumeration_type("IfcSectionTypeEnum", 998, items); } - IFC4X3_RC3_IfcSectionalAreaIntegralMeasure_type = new type_declaration("IfcSectionalAreaIntegralMeasure", 988, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSectionalAreaIntegralMeasure_type = new type_declaration("IfcSectionalAreaIntegralMeasure", 990, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(34); items.push_back("CO2SENSOR"); @@ -5123,7 +5160,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("USERDEFINED"); items.push_back("WHEELSENSOR"); items.push_back("WINDSENSOR"); - IFC4X3_RC3_IfcSensorTypeEnum_type = new enumeration_type("IfcSensorTypeEnum", 1002, items); + IFC4X3_RC3_IfcSensorTypeEnum_type = new enumeration_type("IfcSensorTypeEnum", 1004, items); } { std::vector items; items.reserve(6); @@ -5133,7 +5170,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("START_FINISH"); items.push_back("START_START"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcSequenceEnum_type = new enumeration_type("IfcSequenceEnum", 1003, items); + IFC4X3_RC3_IfcSequenceEnum_type = new enumeration_type("IfcSequenceEnum", 1005, items); } { std::vector items; items.reserve(5); @@ -5142,9 +5179,9 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SHUTTER"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcShadingDeviceTypeEnum_type = new enumeration_type("IfcShadingDeviceTypeEnum", 1006, items); + IFC4X3_RC3_IfcShadingDeviceTypeEnum_type = new enumeration_type("IfcShadingDeviceTypeEnum", 1008, items); } - IFC4X3_RC3_IfcShearModulusMeasure_type = new type_declaration("IfcShearModulusMeasure", 1010, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcShearModulusMeasure_type = new type_declaration("IfcShearModulusMeasure", 1012, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(5); items.push_back("MARKER"); @@ -5152,7 +5189,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("PICTORAL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcSignTypeEnum_type = new enumeration_type("IfcSignTypeEnum", 1018, items); + IFC4X3_RC3_IfcSignTypeEnum_type = new enumeration_type("IfcSignTypeEnum", 1020, items); } { std::vector items; items.reserve(5); @@ -5161,7 +5198,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); items.push_back("VISUAL"); - IFC4X3_RC3_IfcSignalTypeEnum_type = new enumeration_type("IfcSignalTypeEnum", 1016, items); + IFC4X3_RC3_IfcSignalTypeEnum_type = new enumeration_type("IfcSignalTypeEnum", 1018, items); } { std::vector items; items.reserve(12); @@ -5177,7 +5214,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("Q_TIME"); items.push_back("Q_VOLUME"); items.push_back("Q_WEIGHT"); - IFC4X3_RC3_IfcSimplePropertyTemplateTypeEnum_type = new enumeration_type("IfcSimplePropertyTemplateTypeEnum", 1021, items); + IFC4X3_RC3_IfcSimplePropertyTemplateTypeEnum_type = new enumeration_type("IfcSimplePropertyTemplateTypeEnum", 1023, items); } { std::vector items; items.reserve(11); @@ -5192,7 +5229,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRACKSLAB"); items.push_back("USERDEFINED"); items.push_back("WEARING"); - IFC4X3_RC3_IfcSlabTypeEnum_type = new enumeration_type("IfcSlabTypeEnum", 1033, items); + IFC4X3_RC3_IfcSlabTypeEnum_type = new enumeration_type("IfcSlabTypeEnum", 1035, items); } { std::vector items; items.reserve(4); @@ -5200,20 +5237,20 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SOLARCOLLECTOR"); items.push_back("SOLARPANEL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcSolarDeviceTypeEnum_type = new enumeration_type("IfcSolarDeviceTypeEnum", 1037, items); + IFC4X3_RC3_IfcSolarDeviceTypeEnum_type = new enumeration_type("IfcSolarDeviceTypeEnum", 1039, items); } - IFC4X3_RC3_IfcSolidAngleMeasure_type = new type_declaration("IfcSolidAngleMeasure", 1038, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcSoundPowerLevelMeasure_type = new type_declaration("IfcSoundPowerLevelMeasure", 1042, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcSoundPowerMeasure_type = new type_declaration("IfcSoundPowerMeasure", 1043, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcSoundPressureLevelMeasure_type = new type_declaration("IfcSoundPressureLevelMeasure", 1044, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcSoundPressureMeasure_type = new type_declaration("IfcSoundPressureMeasure", 1045, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSolidAngleMeasure_type = new type_declaration("IfcSolidAngleMeasure", 1040, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSoundPowerLevelMeasure_type = new type_declaration("IfcSoundPowerLevelMeasure", 1044, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSoundPowerMeasure_type = new type_declaration("IfcSoundPowerMeasure", 1045, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSoundPressureLevelMeasure_type = new type_declaration("IfcSoundPressureLevelMeasure", 1046, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSoundPressureMeasure_type = new type_declaration("IfcSoundPressureMeasure", 1047, 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"); - IFC4X3_RC3_IfcSpaceHeaterTypeEnum_type = new enumeration_type("IfcSpaceHeaterTypeEnum", 1050, items); + IFC4X3_RC3_IfcSpaceHeaterTypeEnum_type = new enumeration_type("IfcSpaceHeaterTypeEnum", 1052, items); } { std::vector items; items.reserve(8); @@ -5225,7 +5262,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PARKING"); items.push_back("SPACE"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcSpaceTypeEnum_type = new enumeration_type("IfcSpaceTypeEnum", 1052, items); + IFC4X3_RC3_IfcSpaceTypeEnum_type = new enumeration_type("IfcSpaceTypeEnum", 1054, items); } { std::vector items; items.reserve(11); @@ -5240,11 +5277,11 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRANSPORT"); items.push_back("USERDEFINED"); items.push_back("VENTILATION"); - IFC4X3_RC3_IfcSpatialZoneTypeEnum_type = new enumeration_type("IfcSpatialZoneTypeEnum", 1060, items); + IFC4X3_RC3_IfcSpatialZoneTypeEnum_type = new enumeration_type("IfcSpatialZoneTypeEnum", 1062, items); } - IFC4X3_RC3_IfcSpecificHeatCapacityMeasure_type = new type_declaration("IfcSpecificHeatCapacityMeasure", 1061, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcSpecularExponent_type = new type_declaration("IfcSpecularExponent", 1062, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcSpecularRoughness_type = new type_declaration("IfcSpecularRoughness", 1064, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSpecificHeatCapacityMeasure_type = new type_declaration("IfcSpecificHeatCapacityMeasure", 1063, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSpecularExponent_type = new type_declaration("IfcSpecularExponent", 1064, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcSpecularRoughness_type = new type_declaration("IfcSpecularRoughness", 1066, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(5); items.push_back("BIRDCAGE"); @@ -5252,7 +5289,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("RAINWATERHOPPER"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcStackTerminalTypeEnum_type = new enumeration_type("IfcStackTerminalTypeEnum", 1070, items); + IFC4X3_RC3_IfcStackTerminalTypeEnum_type = new enumeration_type("IfcStackTerminalTypeEnum", 1072, items); } { std::vector items; items.reserve(7); @@ -5263,7 +5300,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STRAIGHT"); items.push_back("USERDEFINED"); items.push_back("WINDER"); - IFC4X3_RC3_IfcStairFlightTypeEnum_type = new enumeration_type("IfcStairFlightTypeEnum", 1074, items); + IFC4X3_RC3_IfcStairFlightTypeEnum_type = new enumeration_type("IfcStairFlightTypeEnum", 1076, items); } { std::vector items; items.reserve(17); @@ -5284,7 +5321,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TWO_QUARTER_WINDING_STAIR"); items.push_back("TWO_STRAIGHT_RUN_STAIR"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcStairTypeEnum_type = new enumeration_type("IfcStairTypeEnum", 1076, items); + IFC4X3_RC3_IfcStairTypeEnum_type = new enumeration_type("IfcStairTypeEnum", 1078, items); } { std::vector items; items.reserve(5); @@ -5293,7 +5330,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("READONLYLOCKED"); items.push_back("READWRITE"); items.push_back("READWRITELOCKED"); - IFC4X3_RC3_IfcStateEnum_type = new enumeration_type("IfcStateEnum", 1077, items); + IFC4X3_RC3_IfcStateEnum_type = new enumeration_type("IfcStateEnum", 1079, items); } { std::vector items; items.reserve(9); @@ -5306,7 +5343,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("POLYGONAL"); items.push_back("SINUS"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcStructuralCurveActivityTypeEnum_type = new enumeration_type("IfcStructuralCurveActivityTypeEnum", 1085, items); + IFC4X3_RC3_IfcStructuralCurveActivityTypeEnum_type = new enumeration_type("IfcStructuralCurveActivityTypeEnum", 1087, items); } { std::vector items; items.reserve(7); @@ -5317,7 +5354,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RIGID_JOINED_MEMBER"); items.push_back("TENSION_MEMBER"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcStructuralCurveMemberTypeEnum_type = new enumeration_type("IfcStructuralCurveMemberTypeEnum", 1088, items); + IFC4X3_RC3_IfcStructuralCurveMemberTypeEnum_type = new enumeration_type("IfcStructuralCurveMemberTypeEnum", 1090, items); } { std::vector items; items.reserve(6); @@ -5327,7 +5364,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("ISOCONTOUR"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcStructuralSurfaceActivityTypeEnum_type = new enumeration_type("IfcStructuralSurfaceActivityTypeEnum", 1114, items); + IFC4X3_RC3_IfcStructuralSurfaceActivityTypeEnum_type = new enumeration_type("IfcStructuralSurfaceActivityTypeEnum", 1116, items); } { std::vector items; items.reserve(5); @@ -5336,7 +5373,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SHELL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcStructuralSurfaceMemberTypeEnum_type = new enumeration_type("IfcStructuralSurfaceMemberTypeEnum", 1117, items); + IFC4X3_RC3_IfcStructuralSurfaceMemberTypeEnum_type = new enumeration_type("IfcStructuralSurfaceMemberTypeEnum", 1119, items); } { std::vector items; items.reserve(4); @@ -5344,7 +5381,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PURCHASE"); items.push_back("USERDEFINED"); items.push_back("WORK"); - IFC4X3_RC3_IfcSubContractResourceTypeEnum_type = new enumeration_type("IfcSubContractResourceTypeEnum", 1125, items); + IFC4X3_RC3_IfcSubContractResourceTypeEnum_type = new enumeration_type("IfcSubContractResourceTypeEnum", 1127, items); } { std::vector items; items.reserve(13); @@ -5361,14 +5398,14 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRANSVERSERUMBLESTRIP"); items.push_back("TREATMENT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcSurfaceFeatureTypeEnum_type = new enumeration_type("IfcSurfaceFeatureTypeEnum", 1131, items); + IFC4X3_RC3_IfcSurfaceFeatureTypeEnum_type = new enumeration_type("IfcSurfaceFeatureTypeEnum", 1133, items); } { std::vector items; items.reserve(3); items.push_back("BOTH"); items.push_back("NEGATIVE"); items.push_back("POSITIVE"); - IFC4X3_RC3_IfcSurfaceSide_type = new enumeration_type("IfcSurfaceSide", 1136, items); + IFC4X3_RC3_IfcSurfaceSide_type = new enumeration_type("IfcSurfaceSide", 1138, items); } { std::vector items; items.reserve(13); @@ -5385,7 +5422,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SWITCHDISCONNECTOR"); items.push_back("TOGGLESWITCH"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcSwitchingDeviceTypeEnum_type = new enumeration_type("IfcSwitchingDeviceTypeEnum", 1151, items); + IFC4X3_RC3_IfcSwitchingDeviceTypeEnum_type = new enumeration_type("IfcSwitchingDeviceTypeEnum", 1153, items); } { std::vector items; items.reserve(5); @@ -5394,7 +5431,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SUBRACK"); items.push_back("USERDEFINED"); items.push_back("WORKSURFACE"); - IFC4X3_RC3_IfcSystemFurnitureElementTypeEnum_type = new enumeration_type("IfcSystemFurnitureElementTypeEnum", 1155, items); + IFC4X3_RC3_IfcSystemFurnitureElementTypeEnum_type = new enumeration_type("IfcSystemFurnitureElementTypeEnum", 1157, items); } { std::vector items; items.reserve(10); @@ -5408,14 +5445,14 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STORAGE"); items.push_back("USERDEFINED"); items.push_back("VESSEL"); - IFC4X3_RC3_IfcTankTypeEnum_type = new enumeration_type("IfcTankTypeEnum", 1161, items); + IFC4X3_RC3_IfcTankTypeEnum_type = new enumeration_type("IfcTankTypeEnum", 1163, items); } { std::vector items; items.reserve(3); items.push_back("ELAPSEDTIME"); items.push_back("NOTDEFINED"); items.push_back("WORKTIME"); - IFC4X3_RC3_IfcTaskDurationEnum_type = new enumeration_type("IfcTaskDurationEnum", 1163, items); + IFC4X3_RC3_IfcTaskDurationEnum_type = new enumeration_type("IfcTaskDurationEnum", 1165, items); } { std::vector items; items.reserve(14); @@ -5433,10 +5470,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("REMOVAL"); items.push_back("RENOVATION"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcTaskTypeEnum_type = new enumeration_type("IfcTaskTypeEnum", 1167, items); + IFC4X3_RC3_IfcTaskTypeEnum_type = new enumeration_type("IfcTaskTypeEnum", 1169, items); } - IFC4X3_RC3_IfcTemperatureGradientMeasure_type = new type_declaration("IfcTemperatureGradientMeasure", 1169, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcTemperatureRateOfChangeMeasure_type = new type_declaration("IfcTemperatureRateOfChangeMeasure", 1170, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcTemperatureGradientMeasure_type = new type_declaration("IfcTemperatureGradientMeasure", 1171, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcTemperatureRateOfChangeMeasure_type = new type_declaration("IfcTemperatureRateOfChangeMeasure", 1172, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(5); items.push_back("COUPLER"); @@ -5444,7 +5481,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("TENSIONING_END"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcTendonAnchorTypeEnum_type = new enumeration_type("IfcTendonAnchorTypeEnum", 1174, items); + IFC4X3_RC3_IfcTendonAnchorTypeEnum_type = new enumeration_type("IfcTendonAnchorTypeEnum", 1176, items); } { std::vector items; items.reserve(7); @@ -5455,7 +5492,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("TRUMPET"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcTendonConduitTypeEnum_type = new enumeration_type("IfcTendonConduitTypeEnum", 1177, items); + IFC4X3_RC3_IfcTendonConduitTypeEnum_type = new enumeration_type("IfcTendonConduitTypeEnum", 1179, items); } { std::vector items; items.reserve(6); @@ -5465,34 +5502,34 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STRAND"); items.push_back("USERDEFINED"); items.push_back("WIRE"); - IFC4X3_RC3_IfcTendonTypeEnum_type = new enumeration_type("IfcTendonTypeEnum", 1179, items); + IFC4X3_RC3_IfcTendonTypeEnum_type = new enumeration_type("IfcTendonTypeEnum", 1181, items); } - IFC4X3_RC3_IfcText_type = new type_declaration("IfcText", 1182, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcTextAlignment_type = new type_declaration("IfcTextAlignment", 1183, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcTextDecoration_type = new type_declaration("IfcTextDecoration", 1184, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcTextFontName_type = new type_declaration("IfcTextFontName", 1185, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcText_type = new type_declaration("IfcText", 1184, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcTextAlignment_type = new type_declaration("IfcTextAlignment", 1185, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcTextDecoration_type = new type_declaration("IfcTextDecoration", 1186, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcTextFontName_type = new type_declaration("IfcTextFontName", 1187, 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"); - IFC4X3_RC3_IfcTextPath_type = new enumeration_type("IfcTextPath", 1189, items); + IFC4X3_RC3_IfcTextPath_type = new enumeration_type("IfcTextPath", 1191, items); } - IFC4X3_RC3_IfcTextTransformation_type = new type_declaration("IfcTextTransformation", 1194, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcThermalAdmittanceMeasure_type = new type_declaration("IfcThermalAdmittanceMeasure", 1200, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcThermalConductivityMeasure_type = new type_declaration("IfcThermalConductivityMeasure", 1201, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcThermalExpansionCoefficientMeasure_type = new type_declaration("IfcThermalExpansionCoefficientMeasure", 1202, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcThermalResistanceMeasure_type = new type_declaration("IfcThermalResistanceMeasure", 1203, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcThermalTransmittanceMeasure_type = new type_declaration("IfcThermalTransmittanceMeasure", 1204, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcThermodynamicTemperatureMeasure_type = new type_declaration("IfcThermodynamicTemperatureMeasure", 1205, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcTime_type = new type_declaration("IfcTime", 1207, new simple_type(simple_type::string_type)); - IFC4X3_RC3_IfcTimeMeasure_type = new type_declaration("IfcTimeMeasure", 1208, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcTextTransformation_type = new type_declaration("IfcTextTransformation", 1196, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcThermalAdmittanceMeasure_type = new type_declaration("IfcThermalAdmittanceMeasure", 1202, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcThermalConductivityMeasure_type = new type_declaration("IfcThermalConductivityMeasure", 1203, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcThermalExpansionCoefficientMeasure_type = new type_declaration("IfcThermalExpansionCoefficientMeasure", 1204, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcThermalResistanceMeasure_type = new type_declaration("IfcThermalResistanceMeasure", 1205, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcThermalTransmittanceMeasure_type = new type_declaration("IfcThermalTransmittanceMeasure", 1206, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcThermodynamicTemperatureMeasure_type = new type_declaration("IfcThermodynamicTemperatureMeasure", 1207, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcTime_type = new type_declaration("IfcTime", 1209, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcTimeMeasure_type = new type_declaration("IfcTimeMeasure", 1210, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcDuration_type); items.push_back(IFC4X3_RC3_IfcRatioMeasure_type); - IFC4X3_RC3_IfcTimeOrRatioSelect_type = new select_type("IfcTimeOrRatioSelect", 1209, items); + IFC4X3_RC3_IfcTimeOrRatioSelect_type = new select_type("IfcTimeOrRatioSelect", 1211, items); } { std::vector items; items.reserve(7); @@ -5503,10 +5540,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PIECEWISEBINARY"); items.push_back("PIECEWISECONSTANT"); items.push_back("PIECEWISECONTINUOUS"); - IFC4X3_RC3_IfcTimeSeriesDataTypeEnum_type = new enumeration_type("IfcTimeSeriesDataTypeEnum", 1212, items); + IFC4X3_RC3_IfcTimeSeriesDataTypeEnum_type = new enumeration_type("IfcTimeSeriesDataTypeEnum", 1214, items); } - IFC4X3_RC3_IfcTimeStamp_type = new type_declaration("IfcTimeStamp", 1214, new simple_type(simple_type::integer_type)); - IFC4X3_RC3_IfcTorqueMeasure_type = new type_declaration("IfcTorqueMeasure", 1218, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcTimeStamp_type = new type_declaration("IfcTimeStamp", 1216, new simple_type(simple_type::integer_type)); + IFC4X3_RC3_IfcTorqueMeasure_type = new type_declaration("IfcTorqueMeasure", 1220, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(10); items.push_back("BLOCKINGDEVICE"); @@ -5519,7 +5556,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRACKENDOFALIGNMENT"); items.push_back("USERDEFINED"); items.push_back("VEHICLESTOP"); - IFC4X3_RC3_IfcTrackElementTypeEnum_type = new enumeration_type("IfcTrackElementTypeEnum", 1221, items); + IFC4X3_RC3_IfcTrackElementTypeEnum_type = new enumeration_type("IfcTrackElementTypeEnum", 1223, items); } { std::vector items; items.reserve(9); @@ -5532,7 +5569,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("RECTIFIER"); items.push_back("USERDEFINED"); items.push_back("VOLTAGE"); - IFC4X3_RC3_IfcTransformerTypeEnum_type = new enumeration_type("IfcTransformerTypeEnum", 1224, items); + IFC4X3_RC3_IfcTransformerTypeEnum_type = new enumeration_type("IfcTransformerTypeEnum", 1226, items); } { std::vector items; items.reserve(4); @@ -5540,13 +5577,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("CONTSAMEGRADIENT"); items.push_back("CONTSAMEGRADIENTSAMECURVATURE"); items.push_back("DISCONTINUOUS"); - IFC4X3_RC3_IfcTransitionCode_type = new enumeration_type("IfcTransitionCode", 1225, items); + IFC4X3_RC3_IfcTransitionCode_type = new enumeration_type("IfcTransitionCode", 1227, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcBoolean_type); items.push_back(IFC4X3_RC3_IfcLinearStiffnessMeasure_type); - IFC4X3_RC3_IfcTranslationalStiffnessSelect_type = new select_type("IfcTranslationalStiffnessSelect", 1226, items); + IFC4X3_RC3_IfcTranslationalStiffnessSelect_type = new select_type("IfcTranslationalStiffnessSelect", 1228, items); } { std::vector items; items.reserve(8); @@ -5558,7 +5595,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("MOVINGWALKWAY"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcTransportElementFixedTypeEnum_type = new enumeration_type("IfcTransportElementFixedTypeEnum", 1228, items); + IFC4X3_RC3_IfcTransportElementFixedTypeEnum_type = new enumeration_type("IfcTransportElementFixedTypeEnum", 1230, items); } { std::vector items; items.reserve(9); @@ -5571,29 +5608,29 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("VEHICLEMARINE"); items.push_back("VEHICLETRACKED"); items.push_back("VEHICLEWHEELED"); - IFC4X3_RC3_IfcTransportElementNonFixedTypeEnum_type = new enumeration_type("IfcTransportElementNonFixedTypeEnum", 1229, items); + IFC4X3_RC3_IfcTransportElementNonFixedTypeEnum_type = new enumeration_type("IfcTransportElementNonFixedTypeEnum", 1231, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcTransportElementFixedTypeEnum_type); items.push_back(IFC4X3_RC3_IfcTransportElementNonFixedTypeEnum_type); - IFC4X3_RC3_IfcTransportElementTypeSelect_type = new select_type("IfcTransportElementTypeSelect", 1231, items); + IFC4X3_RC3_IfcTransportElementTypeSelect_type = new select_type("IfcTransportElementTypeSelect", 1233, items); } { std::vector items; items.reserve(3); items.push_back("CARTESIAN"); items.push_back("PARAMETER"); items.push_back("UNSPECIFIED"); - IFC4X3_RC3_IfcTrimmingPreference_type = new enumeration_type("IfcTrimmingPreference", 1236, items); + IFC4X3_RC3_IfcTrimmingPreference_type = new enumeration_type("IfcTrimmingPreference", 1238, items); } { std::vector items; items.reserve(3); items.push_back("FINNED"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcTubeBundleTypeEnum_type = new enumeration_type("IfcTubeBundleTypeEnum", 1241, items); + IFC4X3_RC3_IfcTubeBundleTypeEnum_type = new enumeration_type("IfcTubeBundleTypeEnum", 1243, items); } - IFC4X3_RC3_IfcURIReference_type = new type_declaration("IfcURIReference", 1255, new simple_type(simple_type::string_type)); + IFC4X3_RC3_IfcURIReference_type = new type_declaration("IfcURIReference", 1257, new simple_type(simple_type::string_type)); { std::vector items; items.reserve(30); items.push_back("ABSORBEDDOSEUNIT"); @@ -5626,7 +5663,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TIMEUNIT"); items.push_back("USERDEFINED"); items.push_back("VOLUMEUNIT"); - IFC4X3_RC3_IfcUnitEnum_type = new enumeration_type("IfcUnitEnum", 1254, items); + IFC4X3_RC3_IfcUnitEnum_type = new enumeration_type("IfcUnitEnum", 1256, items); } { std::vector items; items.reserve(11); @@ -5641,7 +5678,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("THERMOSTAT"); items.push_back("USERDEFINED"); items.push_back("WEATHERSTATION"); - IFC4X3_RC3_IfcUnitaryControlElementTypeEnum_type = new enumeration_type("IfcUnitaryControlElementTypeEnum", 1249, items); + IFC4X3_RC3_IfcUnitaryControlElementTypeEnum_type = new enumeration_type("IfcUnitaryControlElementTypeEnum", 1251, items); } { std::vector items; items.reserve(7); @@ -5652,7 +5689,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("ROOFTOPUNIT"); items.push_back("SPLITSYSTEM"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcUnitaryEquipmentTypeEnum_type = new enumeration_type("IfcUnitaryEquipmentTypeEnum", 1252, items); + IFC4X3_RC3_IfcUnitaryEquipmentTypeEnum_type = new enumeration_type("IfcUnitaryEquipmentTypeEnum", 1254, items); } { std::vector items; items.reserve(23); @@ -5679,9 +5716,9 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STEAMTRAP"); items.push_back("STOPCOCK"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcValveTypeEnum_type = new enumeration_type("IfcValveTypeEnum", 1260, items); + IFC4X3_RC3_IfcValveTypeEnum_type = new enumeration_type("IfcValveTypeEnum", 1262, items); } - IFC4X3_RC3_IfcVaporPermeabilityMeasure_type = new type_declaration("IfcVaporPermeabilityMeasure", 1261, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcVaporPermeabilityMeasure_type = new type_declaration("IfcVaporPermeabilityMeasure", 1263, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(8); items.push_back("AXIAL_YIELD"); @@ -5692,7 +5729,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SHEAR_YIELD"); items.push_back("USERDEFINED"); items.push_back("VISCOUS"); - IFC4X3_RC3_IfcVibrationDamperTypeEnum_type = new enumeration_type("IfcVibrationDamperTypeEnum", 1269, items); + IFC4X3_RC3_IfcVibrationDamperTypeEnum_type = new enumeration_type("IfcVibrationDamperTypeEnum", 1271, items); } { std::vector items; items.reserve(5); @@ -5701,7 +5738,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("SPRING"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcVibrationIsolatorTypeEnum_type = new enumeration_type("IfcVibrationIsolatorTypeEnum", 1272, items); + IFC4X3_RC3_IfcVibrationIsolatorTypeEnum_type = new enumeration_type("IfcVibrationIsolatorTypeEnum", 1274, items); } { std::vector items; items.reserve(8); @@ -5713,10 +5750,10 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTCH"); items.push_back("NOTDEFINED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcVoidingFeatureTypeEnum_type = new enumeration_type("IfcVoidingFeatureTypeEnum", 1277, items); + IFC4X3_RC3_IfcVoidingFeatureTypeEnum_type = new enumeration_type("IfcVoidingFeatureTypeEnum", 1279, items); } - IFC4X3_RC3_IfcVolumeMeasure_type = new type_declaration("IfcVolumeMeasure", 1279, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcVolumetricFlowRateMeasure_type = new type_declaration("IfcVolumetricFlowRateMeasure", 1280, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcVolumeMeasure_type = new type_declaration("IfcVolumeMeasure", 1281, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcVolumetricFlowRateMeasure_type = new type_declaration("IfcVolumetricFlowRateMeasure", 1282, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(13); items.push_back("ELEMENTEDWALL"); @@ -5732,15 +5769,15 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("STANDARD"); items.push_back("USERDEFINED"); items.push_back("WAVEWALL"); - IFC4X3_RC3_IfcWallTypeEnum_type = new enumeration_type("IfcWallTypeEnum", 1285, items); + IFC4X3_RC3_IfcWallTypeEnum_type = new enumeration_type("IfcWallTypeEnum", 1287, items); } - IFC4X3_RC3_IfcWarpingConstantMeasure_type = new type_declaration("IfcWarpingConstantMeasure", 1286, new simple_type(simple_type::real_type)); - IFC4X3_RC3_IfcWarpingMomentMeasure_type = new type_declaration("IfcWarpingMomentMeasure", 1287, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcWarpingConstantMeasure_type = new type_declaration("IfcWarpingConstantMeasure", 1288, new simple_type(simple_type::real_type)); + IFC4X3_RC3_IfcWarpingMomentMeasure_type = new type_declaration("IfcWarpingMomentMeasure", 1289, new simple_type(simple_type::real_type)); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcBoolean_type); items.push_back(IFC4X3_RC3_IfcWarpingMomentMeasure_type); - IFC4X3_RC3_IfcWarpingStiffnessSelect_type = new select_type("IfcWarpingStiffnessSelect", 1288, items); + IFC4X3_RC3_IfcWarpingStiffnessSelect_type = new select_type("IfcWarpingStiffnessSelect", 1290, items); } { std::vector items; items.reserve(9); @@ -5753,7 +5790,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("USERDEFINED"); items.push_back("WASTEDISPOSALUNIT"); items.push_back("WASTETRAP"); - IFC4X3_RC3_IfcWasteTerminalTypeEnum_type = new enumeration_type("IfcWasteTerminalTypeEnum", 1291, items); + IFC4X3_RC3_IfcWasteTerminalTypeEnum_type = new enumeration_type("IfcWasteTerminalTypeEnum", 1293, items); } { std::vector items; items.reserve(14); @@ -5771,7 +5808,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TILTANDTURNLEFTHAND"); items.push_back("TILTANDTURNRIGHTHAND"); items.push_back("TOPHUNG"); - IFC4X3_RC3_IfcWindowPanelOperationEnum_type = new enumeration_type("IfcWindowPanelOperationEnum", 1295, items); + IFC4X3_RC3_IfcWindowPanelOperationEnum_type = new enumeration_type("IfcWindowPanelOperationEnum", 1297, items); } { std::vector items; items.reserve(6); @@ -5781,7 +5818,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("RIGHT"); items.push_back("TOP"); - IFC4X3_RC3_IfcWindowPanelPositionEnum_type = new enumeration_type("IfcWindowPanelPositionEnum", 1296, items); + IFC4X3_RC3_IfcWindowPanelPositionEnum_type = new enumeration_type("IfcWindowPanelPositionEnum", 1298, items); } { std::vector items; items.reserve(8); @@ -5793,7 +5830,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("PLASTIC"); items.push_back("STEEL"); items.push_back("WOOD"); - IFC4X3_RC3_IfcWindowStyleConstructionEnum_type = new enumeration_type("IfcWindowStyleConstructionEnum", 1300, items); + IFC4X3_RC3_IfcWindowStyleConstructionEnum_type = new enumeration_type("IfcWindowStyleConstructionEnum", 1302, items); } { std::vector items; items.reserve(11); @@ -5808,7 +5845,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRIPLE_PANEL_TOP"); items.push_back("TRIPLE_PANEL_VERTICAL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcWindowStyleOperationEnum_type = new enumeration_type("IfcWindowStyleOperationEnum", 1301, items); + IFC4X3_RC3_IfcWindowStyleOperationEnum_type = new enumeration_type("IfcWindowStyleOperationEnum", 1303, items); } { std::vector items; items.reserve(5); @@ -5817,7 +5854,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SKYLIGHT"); items.push_back("USERDEFINED"); items.push_back("WINDOW"); - IFC4X3_RC3_IfcWindowTypeEnum_type = new enumeration_type("IfcWindowTypeEnum", 1303, items); + IFC4X3_RC3_IfcWindowTypeEnum_type = new enumeration_type("IfcWindowTypeEnum", 1305, items); } { std::vector items; items.reserve(11); @@ -5832,7 +5869,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("TRIPLE_PANEL_TOP"); items.push_back("TRIPLE_PANEL_VERTICAL"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcWindowTypePartitioningEnum_type = new enumeration_type("IfcWindowTypePartitioningEnum", 1304, items); + IFC4X3_RC3_IfcWindowTypePartitioningEnum_type = new enumeration_type("IfcWindowTypePartitioningEnum", 1306, items); } { std::vector items; items.reserve(5); @@ -5841,7 +5878,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("SECONDSHIFT"); items.push_back("THIRDSHIFT"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcWorkCalendarTypeEnum_type = new enumeration_type("IfcWorkCalendarTypeEnum", 1306, items); + IFC4X3_RC3_IfcWorkCalendarTypeEnum_type = new enumeration_type("IfcWorkCalendarTypeEnum", 1308, items); } { std::vector items; items.reserve(5); @@ -5850,7 +5887,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("PLANNED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcWorkPlanTypeEnum_type = new enumeration_type("IfcWorkPlanTypeEnum", 1309, items); + IFC4X3_RC3_IfcWorkPlanTypeEnum_type = new enumeration_type("IfcWorkPlanTypeEnum", 1311, items); } { std::vector items; items.reserve(5); @@ -5859,7 +5896,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back("NOTDEFINED"); items.push_back("PLANNED"); items.push_back("USERDEFINED"); - IFC4X3_RC3_IfcWorkScheduleTypeEnum_type = new enumeration_type("IfcWorkScheduleTypeEnum", 1311, items); + IFC4X3_RC3_IfcWorkScheduleTypeEnum_type = new enumeration_type("IfcWorkScheduleTypeEnum", 1313, items); } IFC4X3_RC3_IfcActorRole_type = new entity("IfcActorRole", false, 7, 0); IFC4X3_RC3_IfcAddress_type = new entity("IfcAddress", true, 12, 0); @@ -5884,109 +5921,109 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcDerivedUnit_type = new entity("IfcDerivedUnit", false, 301, 0); IFC4X3_RC3_IfcDerivedUnitElement_type = new entity("IfcDerivedUnitElement", false, 302, 0); IFC4X3_RC3_IfcDimensionalExponents_type = new entity("IfcDimensionalExponents", false, 305, 0); - IFC4X3_RC3_IfcExternalInformation_type = new entity("IfcExternalInformation", true, 428, 0); - IFC4X3_RC3_IfcExternalReference_type = new entity("IfcExternalReference", true, 432, 0); - IFC4X3_RC3_IfcExternallyDefinedHatchStyle_type = new entity("IfcExternallyDefinedHatchStyle", false, 429, IFC4X3_RC3_IfcExternalReference_type); - IFC4X3_RC3_IfcExternallyDefinedSurfaceStyle_type = new entity("IfcExternallyDefinedSurfaceStyle", false, 430, IFC4X3_RC3_IfcExternalReference_type); - IFC4X3_RC3_IfcExternallyDefinedTextFont_type = new entity("IfcExternallyDefinedTextFont", false, 431, IFC4X3_RC3_IfcExternalReference_type); - IFC4X3_RC3_IfcGridAxis_type = new entity("IfcGridAxis", false, 525, 0); - IFC4X3_RC3_IfcIrregularTimeSeriesValue_type = new entity("IfcIrregularTimeSeriesValue", false, 567, 0); - IFC4X3_RC3_IfcLibraryInformation_type = new entity("IfcLibraryInformation", false, 589, IFC4X3_RC3_IfcExternalInformation_type); - IFC4X3_RC3_IfcLibraryReference_type = new entity("IfcLibraryReference", false, 590, IFC4X3_RC3_IfcExternalReference_type); - IFC4X3_RC3_IfcLightDistributionData_type = new entity("IfcLightDistributionData", false, 593, 0); - IFC4X3_RC3_IfcLightIntensityDistribution_type = new entity("IfcLightIntensityDistribution", false, 599, 0); - IFC4X3_RC3_IfcMapConversion_type = new entity("IfcMapConversion", false, 630, IFC4X3_RC3_IfcCoordinateOperation_type); - IFC4X3_RC3_IfcMaterialClassificationRelationship_type = new entity("IfcMaterialClassificationRelationship", false, 640, 0); - IFC4X3_RC3_IfcMaterialDefinition_type = new entity("IfcMaterialDefinition", true, 643, 0); - IFC4X3_RC3_IfcMaterialLayer_type = new entity("IfcMaterialLayer", false, 645, IFC4X3_RC3_IfcMaterialDefinition_type); - IFC4X3_RC3_IfcMaterialLayerSet_type = new entity("IfcMaterialLayerSet", false, 646, IFC4X3_RC3_IfcMaterialDefinition_type); - IFC4X3_RC3_IfcMaterialLayerWithOffsets_type = new entity("IfcMaterialLayerWithOffsets", false, 648, IFC4X3_RC3_IfcMaterialLayer_type); - IFC4X3_RC3_IfcMaterialList_type = new entity("IfcMaterialList", false, 649, 0); - IFC4X3_RC3_IfcMaterialProfile_type = new entity("IfcMaterialProfile", false, 650, IFC4X3_RC3_IfcMaterialDefinition_type); - IFC4X3_RC3_IfcMaterialProfileSet_type = new entity("IfcMaterialProfileSet", false, 651, IFC4X3_RC3_IfcMaterialDefinition_type); - IFC4X3_RC3_IfcMaterialProfileWithOffsets_type = new entity("IfcMaterialProfileWithOffsets", false, 654, IFC4X3_RC3_IfcMaterialProfile_type); - IFC4X3_RC3_IfcMaterialUsageDefinition_type = new entity("IfcMaterialUsageDefinition", true, 658, 0); - IFC4X3_RC3_IfcMeasureWithUnit_type = new entity("IfcMeasureWithUnit", false, 660, 0); - IFC4X3_RC3_IfcMetric_type = new entity("IfcMetric", false, 671, IFC4X3_RC3_IfcConstraint_type); - IFC4X3_RC3_IfcMonetaryUnit_type = new entity("IfcMonetaryUnit", false, 688, 0); - IFC4X3_RC3_IfcNamedUnit_type = new entity("IfcNamedUnit", true, 696, 0); - IFC4X3_RC3_IfcObjectPlacement_type = new entity("IfcObjectPlacement", true, 707, 0); - IFC4X3_RC3_IfcObjective_type = new entity("IfcObjective", false, 705, IFC4X3_RC3_IfcConstraint_type); - IFC4X3_RC3_IfcOrganization_type = new entity("IfcOrganization", false, 721, 0); - IFC4X3_RC3_IfcOwnerHistory_type = new entity("IfcOwnerHistory", false, 728, 0); - IFC4X3_RC3_IfcPerson_type = new entity("IfcPerson", false, 741, 0); - IFC4X3_RC3_IfcPersonAndOrganization_type = new entity("IfcPersonAndOrganization", false, 742, 0); - IFC4X3_RC3_IfcPhysicalQuantity_type = new entity("IfcPhysicalQuantity", true, 746, 0); - IFC4X3_RC3_IfcPhysicalSimpleQuantity_type = new entity("IfcPhysicalSimpleQuantity", true, 747, IFC4X3_RC3_IfcPhysicalQuantity_type); - IFC4X3_RC3_IfcPostalAddress_type = new entity("IfcPostalAddress", false, 786, IFC4X3_RC3_IfcAddress_type); - IFC4X3_RC3_IfcPresentationItem_type = new entity("IfcPresentationItem", true, 796, 0); - IFC4X3_RC3_IfcPresentationLayerAssignment_type = new entity("IfcPresentationLayerAssignment", false, 797, 0); - IFC4X3_RC3_IfcPresentationLayerWithStyle_type = new entity("IfcPresentationLayerWithStyle", false, 798, IFC4X3_RC3_IfcPresentationLayerAssignment_type); - IFC4X3_RC3_IfcPresentationStyle_type = new entity("IfcPresentationStyle", true, 799, 0); - IFC4X3_RC3_IfcProductRepresentation_type = new entity("IfcProductRepresentation", true, 808, 0); - IFC4X3_RC3_IfcProfileDef_type = new entity("IfcProfileDef", false, 811, 0); - IFC4X3_RC3_IfcProjectedCRS_type = new entity("IfcProjectedCRS", false, 815, IFC4X3_RC3_IfcCoordinateReferenceSystem_type); - IFC4X3_RC3_IfcPropertyAbstraction_type = new entity("IfcPropertyAbstraction", true, 823, 0); - IFC4X3_RC3_IfcPropertyEnumeration_type = new entity("IfcPropertyEnumeration", false, 828, IFC4X3_RC3_IfcPropertyAbstraction_type); - IFC4X3_RC3_IfcQuantityArea_type = new entity("IfcQuantityArea", false, 851, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); - IFC4X3_RC3_IfcQuantityCount_type = new entity("IfcQuantityCount", false, 852, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); - IFC4X3_RC3_IfcQuantityLength_type = new entity("IfcQuantityLength", false, 853, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); - IFC4X3_RC3_IfcQuantityTime_type = new entity("IfcQuantityTime", false, 855, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); - IFC4X3_RC3_IfcQuantityVolume_type = new entity("IfcQuantityVolume", false, 856, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); - IFC4X3_RC3_IfcQuantityWeight_type = new entity("IfcQuantityWeight", false, 857, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); - IFC4X3_RC3_IfcRecurrencePattern_type = new entity("IfcRecurrencePattern", false, 882, 0); - IFC4X3_RC3_IfcReference_type = new entity("IfcReference", false, 884, 0); - IFC4X3_RC3_IfcRepresentation_type = new entity("IfcRepresentation", true, 954, 0); - IFC4X3_RC3_IfcRepresentationContext_type = new entity("IfcRepresentationContext", true, 955, 0); - IFC4X3_RC3_IfcRepresentationItem_type = new entity("IfcRepresentationItem", true, 956, 0); - IFC4X3_RC3_IfcRepresentationMap_type = new entity("IfcRepresentationMap", false, 957, 0); - IFC4X3_RC3_IfcResourceLevelRelationship_type = new entity("IfcResourceLevelRelationship", true, 961, 0); - IFC4X3_RC3_IfcRoot_type = new entity("IfcRoot", true, 976, 0); - IFC4X3_RC3_IfcSIUnit_type = new entity("IfcSIUnit", false, 1026, IFC4X3_RC3_IfcNamedUnit_type); - IFC4X3_RC3_IfcSchedulingTime_type = new entity("IfcSchedulingTime", true, 985, 0); - IFC4X3_RC3_IfcShapeAspect_type = new entity("IfcShapeAspect", false, 1007, 0); - IFC4X3_RC3_IfcShapeModel_type = new entity("IfcShapeModel", true, 1008, IFC4X3_RC3_IfcRepresentation_type); - IFC4X3_RC3_IfcShapeRepresentation_type = new entity("IfcShapeRepresentation", false, 1009, IFC4X3_RC3_IfcShapeModel_type); - IFC4X3_RC3_IfcStructuralConnectionCondition_type = new entity("IfcStructuralConnectionCondition", true, 1083, 0); - IFC4X3_RC3_IfcStructuralLoad_type = new entity("IfcStructuralLoad", true, 1093, 0); - IFC4X3_RC3_IfcStructuralLoadConfiguration_type = new entity("IfcStructuralLoadConfiguration", false, 1095, IFC4X3_RC3_IfcStructuralLoad_type); - IFC4X3_RC3_IfcStructuralLoadOrResult_type = new entity("IfcStructuralLoadOrResult", true, 1098, IFC4X3_RC3_IfcStructuralLoad_type); - IFC4X3_RC3_IfcStructuralLoadStatic_type = new entity("IfcStructuralLoadStatic", true, 1104, IFC4X3_RC3_IfcStructuralLoadOrResult_type); - IFC4X3_RC3_IfcStructuralLoadTemperature_type = new entity("IfcStructuralLoadTemperature", false, 1105, IFC4X3_RC3_IfcStructuralLoadStatic_type); - IFC4X3_RC3_IfcStyleModel_type = new entity("IfcStyleModel", true, 1122, IFC4X3_RC3_IfcRepresentation_type); - IFC4X3_RC3_IfcStyledItem_type = new entity("IfcStyledItem", false, 1120, IFC4X3_RC3_IfcRepresentationItem_type); - IFC4X3_RC3_IfcStyledRepresentation_type = new entity("IfcStyledRepresentation", false, 1121, IFC4X3_RC3_IfcStyleModel_type); - IFC4X3_RC3_IfcSurfaceReinforcementArea_type = new entity("IfcSurfaceReinforcementArea", false, 1135, IFC4X3_RC3_IfcStructuralLoadOrResult_type); - IFC4X3_RC3_IfcSurfaceStyle_type = new entity("IfcSurfaceStyle", false, 1137, IFC4X3_RC3_IfcPresentationStyle_type); - IFC4X3_RC3_IfcSurfaceStyleLighting_type = new entity("IfcSurfaceStyleLighting", false, 1139, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcSurfaceStyleRefraction_type = new entity("IfcSurfaceStyleRefraction", false, 1140, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcSurfaceStyleShading_type = new entity("IfcSurfaceStyleShading", false, 1142, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcSurfaceStyleWithTextures_type = new entity("IfcSurfaceStyleWithTextures", false, 1143, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcSurfaceTexture_type = new entity("IfcSurfaceTexture", true, 1144, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcTable_type = new entity("IfcTable", false, 1156, 0); - IFC4X3_RC3_IfcTableColumn_type = new entity("IfcTableColumn", false, 1157, 0); - IFC4X3_RC3_IfcTableRow_type = new entity("IfcTableRow", false, 1158, 0); - IFC4X3_RC3_IfcTaskTime_type = new entity("IfcTaskTime", false, 1164, IFC4X3_RC3_IfcSchedulingTime_type); - IFC4X3_RC3_IfcTaskTimeRecurring_type = new entity("IfcTaskTimeRecurring", false, 1165, IFC4X3_RC3_IfcTaskTime_type); - IFC4X3_RC3_IfcTelecomAddress_type = new entity("IfcTelecomAddress", false, 1168, IFC4X3_RC3_IfcAddress_type); - IFC4X3_RC3_IfcTextStyle_type = new entity("IfcTextStyle", false, 1190, IFC4X3_RC3_IfcPresentationStyle_type); - IFC4X3_RC3_IfcTextStyleForDefinedFont_type = new entity("IfcTextStyleForDefinedFont", false, 1192, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcTextStyleTextModel_type = new entity("IfcTextStyleTextModel", false, 1193, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcTextureCoordinate_type = new entity("IfcTextureCoordinate", true, 1195, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcTextureCoordinateGenerator_type = new entity("IfcTextureCoordinateGenerator", false, 1196, IFC4X3_RC3_IfcTextureCoordinate_type); - IFC4X3_RC3_IfcTextureMap_type = new entity("IfcTextureMap", false, 1197, IFC4X3_RC3_IfcTextureCoordinate_type); - IFC4X3_RC3_IfcTextureVertex_type = new entity("IfcTextureVertex", false, 1198, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcTextureVertexList_type = new entity("IfcTextureVertexList", false, 1199, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcTimePeriod_type = new entity("IfcTimePeriod", false, 1210, 0); - IFC4X3_RC3_IfcTimeSeries_type = new entity("IfcTimeSeries", true, 1211, 0); - IFC4X3_RC3_IfcTimeSeriesValue_type = new entity("IfcTimeSeriesValue", false, 1213, 0); - IFC4X3_RC3_IfcTopologicalRepresentationItem_type = new entity("IfcTopologicalRepresentationItem", true, 1215, IFC4X3_RC3_IfcRepresentationItem_type); - IFC4X3_RC3_IfcTopologyRepresentation_type = new entity("IfcTopologyRepresentation", false, 1216, IFC4X3_RC3_IfcShapeModel_type); - IFC4X3_RC3_IfcUnitAssignment_type = new entity("IfcUnitAssignment", false, 1253, 0); - IFC4X3_RC3_IfcVertex_type = new entity("IfcVertex", false, 1264, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); - IFC4X3_RC3_IfcVertexPoint_type = new entity("IfcVertexPoint", false, 1266, IFC4X3_RC3_IfcVertex_type); - IFC4X3_RC3_IfcVirtualGridIntersection_type = new entity("IfcVirtualGridIntersection", false, 1275, 0); - IFC4X3_RC3_IfcWorkTime_type = new entity("IfcWorkTime", false, 1312, IFC4X3_RC3_IfcSchedulingTime_type); + IFC4X3_RC3_IfcExternalInformation_type = new entity("IfcExternalInformation", true, 429, 0); + IFC4X3_RC3_IfcExternalReference_type = new entity("IfcExternalReference", true, 433, 0); + IFC4X3_RC3_IfcExternallyDefinedHatchStyle_type = new entity("IfcExternallyDefinedHatchStyle", false, 430, IFC4X3_RC3_IfcExternalReference_type); + IFC4X3_RC3_IfcExternallyDefinedSurfaceStyle_type = new entity("IfcExternallyDefinedSurfaceStyle", false, 431, IFC4X3_RC3_IfcExternalReference_type); + IFC4X3_RC3_IfcExternallyDefinedTextFont_type = new entity("IfcExternallyDefinedTextFont", false, 432, IFC4X3_RC3_IfcExternalReference_type); + IFC4X3_RC3_IfcGridAxis_type = new entity("IfcGridAxis", false, 526, 0); + IFC4X3_RC3_IfcIrregularTimeSeriesValue_type = new entity("IfcIrregularTimeSeriesValue", false, 568, 0); + IFC4X3_RC3_IfcLibraryInformation_type = new entity("IfcLibraryInformation", false, 590, IFC4X3_RC3_IfcExternalInformation_type); + IFC4X3_RC3_IfcLibraryReference_type = new entity("IfcLibraryReference", false, 591, IFC4X3_RC3_IfcExternalReference_type); + IFC4X3_RC3_IfcLightDistributionData_type = new entity("IfcLightDistributionData", false, 594, 0); + IFC4X3_RC3_IfcLightIntensityDistribution_type = new entity("IfcLightIntensityDistribution", false, 600, 0); + IFC4X3_RC3_IfcMapConversion_type = new entity("IfcMapConversion", false, 631, IFC4X3_RC3_IfcCoordinateOperation_type); + IFC4X3_RC3_IfcMaterialClassificationRelationship_type = new entity("IfcMaterialClassificationRelationship", false, 641, 0); + IFC4X3_RC3_IfcMaterialDefinition_type = new entity("IfcMaterialDefinition", true, 644, 0); + IFC4X3_RC3_IfcMaterialLayer_type = new entity("IfcMaterialLayer", false, 646, IFC4X3_RC3_IfcMaterialDefinition_type); + IFC4X3_RC3_IfcMaterialLayerSet_type = new entity("IfcMaterialLayerSet", false, 647, IFC4X3_RC3_IfcMaterialDefinition_type); + IFC4X3_RC3_IfcMaterialLayerWithOffsets_type = new entity("IfcMaterialLayerWithOffsets", false, 649, IFC4X3_RC3_IfcMaterialLayer_type); + IFC4X3_RC3_IfcMaterialList_type = new entity("IfcMaterialList", false, 650, 0); + IFC4X3_RC3_IfcMaterialProfile_type = new entity("IfcMaterialProfile", false, 651, IFC4X3_RC3_IfcMaterialDefinition_type); + IFC4X3_RC3_IfcMaterialProfileSet_type = new entity("IfcMaterialProfileSet", false, 652, IFC4X3_RC3_IfcMaterialDefinition_type); + IFC4X3_RC3_IfcMaterialProfileWithOffsets_type = new entity("IfcMaterialProfileWithOffsets", false, 655, IFC4X3_RC3_IfcMaterialProfile_type); + IFC4X3_RC3_IfcMaterialUsageDefinition_type = new entity("IfcMaterialUsageDefinition", true, 659, 0); + IFC4X3_RC3_IfcMeasureWithUnit_type = new entity("IfcMeasureWithUnit", false, 661, 0); + IFC4X3_RC3_IfcMetric_type = new entity("IfcMetric", false, 672, IFC4X3_RC3_IfcConstraint_type); + IFC4X3_RC3_IfcMonetaryUnit_type = new entity("IfcMonetaryUnit", false, 689, 0); + IFC4X3_RC3_IfcNamedUnit_type = new entity("IfcNamedUnit", true, 697, 0); + IFC4X3_RC3_IfcObjectPlacement_type = new entity("IfcObjectPlacement", true, 708, 0); + IFC4X3_RC3_IfcObjective_type = new entity("IfcObjective", false, 706, IFC4X3_RC3_IfcConstraint_type); + IFC4X3_RC3_IfcOrganization_type = new entity("IfcOrganization", false, 722, 0); + IFC4X3_RC3_IfcOwnerHistory_type = new entity("IfcOwnerHistory", false, 729, 0); + IFC4X3_RC3_IfcPerson_type = new entity("IfcPerson", false, 743, 0); + IFC4X3_RC3_IfcPersonAndOrganization_type = new entity("IfcPersonAndOrganization", false, 744, 0); + IFC4X3_RC3_IfcPhysicalQuantity_type = new entity("IfcPhysicalQuantity", true, 748, 0); + IFC4X3_RC3_IfcPhysicalSimpleQuantity_type = new entity("IfcPhysicalSimpleQuantity", true, 749, IFC4X3_RC3_IfcPhysicalQuantity_type); + IFC4X3_RC3_IfcPostalAddress_type = new entity("IfcPostalAddress", false, 788, IFC4X3_RC3_IfcAddress_type); + IFC4X3_RC3_IfcPresentationItem_type = new entity("IfcPresentationItem", true, 798, 0); + IFC4X3_RC3_IfcPresentationLayerAssignment_type = new entity("IfcPresentationLayerAssignment", false, 799, 0); + IFC4X3_RC3_IfcPresentationLayerWithStyle_type = new entity("IfcPresentationLayerWithStyle", false, 800, IFC4X3_RC3_IfcPresentationLayerAssignment_type); + IFC4X3_RC3_IfcPresentationStyle_type = new entity("IfcPresentationStyle", true, 801, 0); + IFC4X3_RC3_IfcProductRepresentation_type = new entity("IfcProductRepresentation", true, 810, 0); + IFC4X3_RC3_IfcProfileDef_type = new entity("IfcProfileDef", false, 813, 0); + IFC4X3_RC3_IfcProjectedCRS_type = new entity("IfcProjectedCRS", false, 817, IFC4X3_RC3_IfcCoordinateReferenceSystem_type); + IFC4X3_RC3_IfcPropertyAbstraction_type = new entity("IfcPropertyAbstraction", true, 825, 0); + IFC4X3_RC3_IfcPropertyEnumeration_type = new entity("IfcPropertyEnumeration", false, 830, IFC4X3_RC3_IfcPropertyAbstraction_type); + IFC4X3_RC3_IfcQuantityArea_type = new entity("IfcQuantityArea", false, 853, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); + IFC4X3_RC3_IfcQuantityCount_type = new entity("IfcQuantityCount", false, 854, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); + IFC4X3_RC3_IfcQuantityLength_type = new entity("IfcQuantityLength", false, 855, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); + IFC4X3_RC3_IfcQuantityTime_type = new entity("IfcQuantityTime", false, 857, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); + IFC4X3_RC3_IfcQuantityVolume_type = new entity("IfcQuantityVolume", false, 858, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); + IFC4X3_RC3_IfcQuantityWeight_type = new entity("IfcQuantityWeight", false, 859, IFC4X3_RC3_IfcPhysicalSimpleQuantity_type); + IFC4X3_RC3_IfcRecurrencePattern_type = new entity("IfcRecurrencePattern", false, 884, 0); + IFC4X3_RC3_IfcReference_type = new entity("IfcReference", false, 886, 0); + IFC4X3_RC3_IfcRepresentation_type = new entity("IfcRepresentation", true, 956, 0); + IFC4X3_RC3_IfcRepresentationContext_type = new entity("IfcRepresentationContext", true, 957, 0); + IFC4X3_RC3_IfcRepresentationItem_type = new entity("IfcRepresentationItem", true, 958, 0); + IFC4X3_RC3_IfcRepresentationMap_type = new entity("IfcRepresentationMap", false, 959, 0); + IFC4X3_RC3_IfcResourceLevelRelationship_type = new entity("IfcResourceLevelRelationship", true, 963, 0); + IFC4X3_RC3_IfcRoot_type = new entity("IfcRoot", true, 978, 0); + IFC4X3_RC3_IfcSIUnit_type = new entity("IfcSIUnit", false, 1028, IFC4X3_RC3_IfcNamedUnit_type); + IFC4X3_RC3_IfcSchedulingTime_type = new entity("IfcSchedulingTime", true, 987, 0); + IFC4X3_RC3_IfcShapeAspect_type = new entity("IfcShapeAspect", false, 1009, 0); + IFC4X3_RC3_IfcShapeModel_type = new entity("IfcShapeModel", true, 1010, IFC4X3_RC3_IfcRepresentation_type); + IFC4X3_RC3_IfcShapeRepresentation_type = new entity("IfcShapeRepresentation", false, 1011, IFC4X3_RC3_IfcShapeModel_type); + IFC4X3_RC3_IfcStructuralConnectionCondition_type = new entity("IfcStructuralConnectionCondition", true, 1085, 0); + IFC4X3_RC3_IfcStructuralLoad_type = new entity("IfcStructuralLoad", true, 1095, 0); + IFC4X3_RC3_IfcStructuralLoadConfiguration_type = new entity("IfcStructuralLoadConfiguration", false, 1097, IFC4X3_RC3_IfcStructuralLoad_type); + IFC4X3_RC3_IfcStructuralLoadOrResult_type = new entity("IfcStructuralLoadOrResult", true, 1100, IFC4X3_RC3_IfcStructuralLoad_type); + IFC4X3_RC3_IfcStructuralLoadStatic_type = new entity("IfcStructuralLoadStatic", true, 1106, IFC4X3_RC3_IfcStructuralLoadOrResult_type); + IFC4X3_RC3_IfcStructuralLoadTemperature_type = new entity("IfcStructuralLoadTemperature", false, 1107, IFC4X3_RC3_IfcStructuralLoadStatic_type); + IFC4X3_RC3_IfcStyleModel_type = new entity("IfcStyleModel", true, 1124, IFC4X3_RC3_IfcRepresentation_type); + IFC4X3_RC3_IfcStyledItem_type = new entity("IfcStyledItem", false, 1122, IFC4X3_RC3_IfcRepresentationItem_type); + IFC4X3_RC3_IfcStyledRepresentation_type = new entity("IfcStyledRepresentation", false, 1123, IFC4X3_RC3_IfcStyleModel_type); + IFC4X3_RC3_IfcSurfaceReinforcementArea_type = new entity("IfcSurfaceReinforcementArea", false, 1137, IFC4X3_RC3_IfcStructuralLoadOrResult_type); + IFC4X3_RC3_IfcSurfaceStyle_type = new entity("IfcSurfaceStyle", false, 1139, IFC4X3_RC3_IfcPresentationStyle_type); + IFC4X3_RC3_IfcSurfaceStyleLighting_type = new entity("IfcSurfaceStyleLighting", false, 1141, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcSurfaceStyleRefraction_type = new entity("IfcSurfaceStyleRefraction", false, 1142, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcSurfaceStyleShading_type = new entity("IfcSurfaceStyleShading", false, 1144, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcSurfaceStyleWithTextures_type = new entity("IfcSurfaceStyleWithTextures", false, 1145, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcSurfaceTexture_type = new entity("IfcSurfaceTexture", true, 1146, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcTable_type = new entity("IfcTable", false, 1158, 0); + IFC4X3_RC3_IfcTableColumn_type = new entity("IfcTableColumn", false, 1159, 0); + IFC4X3_RC3_IfcTableRow_type = new entity("IfcTableRow", false, 1160, 0); + IFC4X3_RC3_IfcTaskTime_type = new entity("IfcTaskTime", false, 1166, IFC4X3_RC3_IfcSchedulingTime_type); + IFC4X3_RC3_IfcTaskTimeRecurring_type = new entity("IfcTaskTimeRecurring", false, 1167, IFC4X3_RC3_IfcTaskTime_type); + IFC4X3_RC3_IfcTelecomAddress_type = new entity("IfcTelecomAddress", false, 1170, IFC4X3_RC3_IfcAddress_type); + IFC4X3_RC3_IfcTextStyle_type = new entity("IfcTextStyle", false, 1192, IFC4X3_RC3_IfcPresentationStyle_type); + IFC4X3_RC3_IfcTextStyleForDefinedFont_type = new entity("IfcTextStyleForDefinedFont", false, 1194, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcTextStyleTextModel_type = new entity("IfcTextStyleTextModel", false, 1195, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcTextureCoordinate_type = new entity("IfcTextureCoordinate", true, 1197, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcTextureCoordinateGenerator_type = new entity("IfcTextureCoordinateGenerator", false, 1198, IFC4X3_RC3_IfcTextureCoordinate_type); + IFC4X3_RC3_IfcTextureMap_type = new entity("IfcTextureMap", false, 1199, IFC4X3_RC3_IfcTextureCoordinate_type); + IFC4X3_RC3_IfcTextureVertex_type = new entity("IfcTextureVertex", false, 1200, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcTextureVertexList_type = new entity("IfcTextureVertexList", false, 1201, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcTimePeriod_type = new entity("IfcTimePeriod", false, 1212, 0); + IFC4X3_RC3_IfcTimeSeries_type = new entity("IfcTimeSeries", true, 1213, 0); + IFC4X3_RC3_IfcTimeSeriesValue_type = new entity("IfcTimeSeriesValue", false, 1215, 0); + IFC4X3_RC3_IfcTopologicalRepresentationItem_type = new entity("IfcTopologicalRepresentationItem", true, 1217, IFC4X3_RC3_IfcRepresentationItem_type); + IFC4X3_RC3_IfcTopologyRepresentation_type = new entity("IfcTopologyRepresentation", false, 1218, IFC4X3_RC3_IfcShapeModel_type); + IFC4X3_RC3_IfcUnitAssignment_type = new entity("IfcUnitAssignment", false, 1255, 0); + IFC4X3_RC3_IfcVertex_type = new entity("IfcVertex", false, 1266, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); + IFC4X3_RC3_IfcVertexPoint_type = new entity("IfcVertexPoint", false, 1268, IFC4X3_RC3_IfcVertex_type); + IFC4X3_RC3_IfcVirtualGridIntersection_type = new entity("IfcVirtualGridIntersection", false, 1277, 0); + IFC4X3_RC3_IfcWorkTime_type = new entity("IfcWorkTime", false, 1314, IFC4X3_RC3_IfcSchedulingTime_type); { std::vector items; items.reserve(3); items.push_back(IFC4X3_RC3_IfcOrganization_type); @@ -6090,42 +6127,42 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcMarinePartTypeEnum_type); items.push_back(IFC4X3_RC3_IfcRailwayPartTypeEnum_type); items.push_back(IFC4X3_RC3_IfcRoadPartTypeEnum_type); - IFC4X3_RC3_IfcFacilityPartTypeSelect_type = new select_type("IfcFacilityPartTypeSelect", 449, items); + IFC4X3_RC3_IfcFacilityPartTypeSelect_type = new select_type("IfcFacilityPartTypeSelect", 450, items); } { std::vector items; items.reserve(3); items.push_back(IFC4X3_RC3_IfcImpactProtectionDeviceTypeEnum_type); items.push_back(IFC4X3_RC3_IfcVibrationDamperTypeEnum_type); items.push_back(IFC4X3_RC3_IfcVibrationIsolatorTypeEnum_type); - IFC4X3_RC3_IfcImpactProtectionDeviceTypeSelect_type = new select_type("IfcImpactProtectionDeviceTypeSelect", 546, items); + IFC4X3_RC3_IfcImpactProtectionDeviceTypeSelect_type = new select_type("IfcImpactProtectionDeviceTypeSelect", 547, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcRepresentation_type); items.push_back(IFC4X3_RC3_IfcRepresentationItem_type); - IFC4X3_RC3_IfcLayeredItem_type = new select_type("IfcLayeredItem", 586, items); + IFC4X3_RC3_IfcLayeredItem_type = new select_type("IfcLayeredItem", 587, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcLibraryInformation_type); items.push_back(IFC4X3_RC3_IfcLibraryReference_type); - IFC4X3_RC3_IfcLibrarySelect_type = new select_type("IfcLibrarySelect", 591, items); + IFC4X3_RC3_IfcLibrarySelect_type = new select_type("IfcLibrarySelect", 592, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcExternalReference_type); items.push_back(IFC4X3_RC3_IfcLightIntensityDistribution_type); - IFC4X3_RC3_IfcLightDistributionDataSourceSelect_type = new select_type("IfcLightDistributionDataSourceSelect", 594, items); + IFC4X3_RC3_IfcLightDistributionDataSourceSelect_type = new select_type("IfcLightDistributionDataSourceSelect", 595, items); } - IFC4X3_RC3_IfcLineIndex_type = new type_declaration("IfcLineIndex", 614, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X3_RC3_IfcPositiveInteger_type))); + IFC4X3_RC3_IfcLineIndex_type = new type_declaration("IfcLineIndex", 615, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X3_RC3_IfcPositiveInteger_type))); { std::vector items; items.reserve(3); items.push_back(IFC4X3_RC3_IfcMaterialDefinition_type); items.push_back(IFC4X3_RC3_IfcMaterialList_type); items.push_back(IFC4X3_RC3_IfcMaterialUsageDefinition_type); - IFC4X3_RC3_IfcMaterialSelect_type = new select_type("IfcMaterialSelect", 657, items); + IFC4X3_RC3_IfcMaterialSelect_type = new select_type("IfcMaterialSelect", 658, items); } - IFC4X3_RC3_IfcNormalisedRatioMeasure_type = new type_declaration("IfcNormalisedRatioMeasure", 701, new named_type(IFC4X3_RC3_IfcRatioMeasure_type)); + IFC4X3_RC3_IfcNormalisedRatioMeasure_type = new type_declaration("IfcNormalisedRatioMeasure", 702, new named_type(IFC4X3_RC3_IfcRatioMeasure_type)); { std::vector items; items.reserve(9); items.push_back(IFC4X3_RC3_IfcAddress_type); @@ -6137,14 +6174,14 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcPersonAndOrganization_type); items.push_back(IFC4X3_RC3_IfcTable_type); items.push_back(IFC4X3_RC3_IfcTimeSeries_type); - IFC4X3_RC3_IfcObjectReferenceSelect_type = new select_type("IfcObjectReferenceSelect", 708, items); + IFC4X3_RC3_IfcObjectReferenceSelect_type = new select_type("IfcObjectReferenceSelect", 709, items); } - IFC4X3_RC3_IfcPositiveRatioMeasure_type = new type_declaration("IfcPositiveRatioMeasure", 785, new named_type(IFC4X3_RC3_IfcRatioMeasure_type)); + IFC4X3_RC3_IfcPositiveRatioMeasure_type = new type_declaration("IfcPositiveRatioMeasure", 787, new named_type(IFC4X3_RC3_IfcRatioMeasure_type)); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcArcIndex_type); items.push_back(IFC4X3_RC3_IfcLineIndex_type); - IFC4X3_RC3_IfcSegmentIndexSelect_type = new select_type("IfcSegmentIndexSelect", 999, items); + IFC4X3_RC3_IfcSegmentIndexSelect_type = new select_type("IfcSegmentIndexSelect", 1001, items); } { std::vector items; items.reserve(14); @@ -6162,7 +6199,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcText_type); items.push_back(IFC4X3_RC3_IfcTime_type); items.push_back(IFC4X3_RC3_IfcTimeStamp_type); - IFC4X3_RC3_IfcSimpleValue_type = new select_type("IfcSimpleValue", 1022, items); + IFC4X3_RC3_IfcSimpleValue_type = new select_type("IfcSimpleValue", 1024, items); } { std::vector items; items.reserve(6); @@ -6172,13 +6209,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcPositiveLengthMeasure_type); items.push_back(IFC4X3_RC3_IfcPositiveRatioMeasure_type); items.push_back(IFC4X3_RC3_IfcRatioMeasure_type); - IFC4X3_RC3_IfcSizeSelect_type = new select_type("IfcSizeSelect", 1028, items); + IFC4X3_RC3_IfcSizeSelect_type = new select_type("IfcSizeSelect", 1030, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcSpecularExponent_type); items.push_back(IFC4X3_RC3_IfcSpecularRoughness_type); - IFC4X3_RC3_IfcSpecularHighlightSelect_type = new select_type("IfcSpecularHighlightSelect", 1063, items); + IFC4X3_RC3_IfcSpecularHighlightSelect_type = new select_type("IfcSpecularHighlightSelect", 1065, items); } { std::vector items; items.reserve(5); @@ -6187,14 +6224,14 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcSurfaceStyleRefraction_type); items.push_back(IFC4X3_RC3_IfcSurfaceStyleShading_type); items.push_back(IFC4X3_RC3_IfcSurfaceStyleWithTextures_type); - IFC4X3_RC3_IfcSurfaceStyleElementSelect_type = new select_type("IfcSurfaceStyleElementSelect", 1138, items); + IFC4X3_RC3_IfcSurfaceStyleElementSelect_type = new select_type("IfcSurfaceStyleElementSelect", 1140, items); } { std::vector items; items.reserve(3); items.push_back(IFC4X3_RC3_IfcDerivedUnit_type); items.push_back(IFC4X3_RC3_IfcMonetaryUnit_type); items.push_back(IFC4X3_RC3_IfcNamedUnit_type); - IFC4X3_RC3_IfcUnit_type = new select_type("IfcUnit", 1246, items); + IFC4X3_RC3_IfcUnit_type = new select_type("IfcUnit", 1248, items); } IFC4X3_RC3_IfcAlignmentCantSegment_type = new entity("IfcAlignmentCantSegment", false, 31, IFC4X3_RC3_IfcAlignmentParameterSegment_type); IFC4X3_RC3_IfcAlignmentHorizontalSegment_type = new entity("IfcAlignmentHorizontalSegment", false, 34, IFC4X3_RC3_IfcAlignmentParameterSegment_type); @@ -6221,124 +6258,124 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcCurveStyleFontAndScaling_type = new entity("IfcCurveStyleFontAndScaling", false, 284, IFC4X3_RC3_IfcPresentationItem_type); IFC4X3_RC3_IfcCurveStyleFontPattern_type = new entity("IfcCurveStyleFontPattern", false, 285, IFC4X3_RC3_IfcPresentationItem_type); IFC4X3_RC3_IfcDerivedProfileDef_type = new entity("IfcDerivedProfileDef", false, 300, IFC4X3_RC3_IfcProfileDef_type); - IFC4X3_RC3_IfcDocumentInformation_type = new entity("IfcDocumentInformation", false, 332, IFC4X3_RC3_IfcExternalInformation_type); - IFC4X3_RC3_IfcDocumentInformationRelationship_type = new entity("IfcDocumentInformationRelationship", false, 333, IFC4X3_RC3_IfcResourceLevelRelationship_type); - IFC4X3_RC3_IfcDocumentReference_type = new entity("IfcDocumentReference", false, 334, IFC4X3_RC3_IfcExternalReference_type); - IFC4X3_RC3_IfcEdge_type = new entity("IfcEdge", false, 368, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); - IFC4X3_RC3_IfcEdgeCurve_type = new entity("IfcEdgeCurve", false, 369, IFC4X3_RC3_IfcEdge_type); - IFC4X3_RC3_IfcEventTime_type = new entity("IfcEventTime", false, 423, IFC4X3_RC3_IfcSchedulingTime_type); - IFC4X3_RC3_IfcExtendedProperties_type = new entity("IfcExtendedProperties", true, 427, IFC4X3_RC3_IfcPropertyAbstraction_type); - IFC4X3_RC3_IfcExternalReferenceRelationship_type = new entity("IfcExternalReferenceRelationship", false, 433, IFC4X3_RC3_IfcResourceLevelRelationship_type); - IFC4X3_RC3_IfcFace_type = new entity("IfcFace", false, 439, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); - IFC4X3_RC3_IfcFaceBound_type = new entity("IfcFaceBound", false, 441, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); - IFC4X3_RC3_IfcFaceOuterBound_type = new entity("IfcFaceOuterBound", false, 442, IFC4X3_RC3_IfcFaceBound_type); - IFC4X3_RC3_IfcFaceSurface_type = new entity("IfcFaceSurface", false, 443, IFC4X3_RC3_IfcFace_type); - IFC4X3_RC3_IfcFailureConnectionCondition_type = new entity("IfcFailureConnectionCondition", false, 451, IFC4X3_RC3_IfcStructuralConnectionCondition_type); - IFC4X3_RC3_IfcFillAreaStyle_type = new entity("IfcFillAreaStyle", false, 461, IFC4X3_RC3_IfcPresentationStyle_type); - IFC4X3_RC3_IfcGeometricRepresentationContext_type = new entity("IfcGeometricRepresentationContext", false, 511, IFC4X3_RC3_IfcRepresentationContext_type); - IFC4X3_RC3_IfcGeometricRepresentationItem_type = new entity("IfcGeometricRepresentationItem", true, 512, IFC4X3_RC3_IfcRepresentationItem_type); - IFC4X3_RC3_IfcGeometricRepresentationSubContext_type = new entity("IfcGeometricRepresentationSubContext", false, 513, IFC4X3_RC3_IfcGeometricRepresentationContext_type); - IFC4X3_RC3_IfcGeometricSet_type = new entity("IfcGeometricSet", false, 514, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcGridPlacement_type = new entity("IfcGridPlacement", false, 526, IFC4X3_RC3_IfcObjectPlacement_type); - IFC4X3_RC3_IfcHalfSpaceSolid_type = new entity("IfcHalfSpaceSolid", false, 530, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcImageTexture_type = new entity("IfcImageTexture", false, 542, IFC4X3_RC3_IfcSurfaceTexture_type); - IFC4X3_RC3_IfcIndexedColourMap_type = new entity("IfcIndexedColourMap", false, 548, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcIndexedTextureMap_type = new entity("IfcIndexedTextureMap", true, 552, IFC4X3_RC3_IfcTextureCoordinate_type); - IFC4X3_RC3_IfcIndexedTriangleTextureMap_type = new entity("IfcIndexedTriangleTextureMap", false, 553, IFC4X3_RC3_IfcIndexedTextureMap_type); - IFC4X3_RC3_IfcIrregularTimeSeries_type = new entity("IfcIrregularTimeSeries", false, 566, IFC4X3_RC3_IfcTimeSeries_type); - IFC4X3_RC3_IfcLagTime_type = new entity("IfcLagTime", false, 581, IFC4X3_RC3_IfcSchedulingTime_type); - IFC4X3_RC3_IfcLightSource_type = new entity("IfcLightSource", true, 600, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcLightSourceAmbient_type = new entity("IfcLightSourceAmbient", false, 601, IFC4X3_RC3_IfcLightSource_type); - IFC4X3_RC3_IfcLightSourceDirectional_type = new entity("IfcLightSourceDirectional", false, 602, IFC4X3_RC3_IfcLightSource_type); - IFC4X3_RC3_IfcLightSourceGoniometric_type = new entity("IfcLightSourceGoniometric", false, 603, IFC4X3_RC3_IfcLightSource_type); - IFC4X3_RC3_IfcLightSourcePositional_type = new entity("IfcLightSourcePositional", false, 604, IFC4X3_RC3_IfcLightSource_type); - IFC4X3_RC3_IfcLightSourceSpot_type = new entity("IfcLightSourceSpot", false, 605, IFC4X3_RC3_IfcLightSourcePositional_type); - IFC4X3_RC3_IfcLinearPlacement_type = new entity("IfcLinearPlacement", false, 610, IFC4X3_RC3_IfcObjectPlacement_type); - IFC4X3_RC3_IfcLocalPlacement_type = new entity("IfcLocalPlacement", false, 619, IFC4X3_RC3_IfcObjectPlacement_type); - IFC4X3_RC3_IfcLoop_type = new entity("IfcLoop", false, 622, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); - IFC4X3_RC3_IfcMappedItem_type = new entity("IfcMappedItem", false, 631, IFC4X3_RC3_IfcRepresentationItem_type); - IFC4X3_RC3_IfcMaterial_type = new entity("IfcMaterial", false, 639, IFC4X3_RC3_IfcMaterialDefinition_type); - IFC4X3_RC3_IfcMaterialConstituent_type = new entity("IfcMaterialConstituent", false, 641, IFC4X3_RC3_IfcMaterialDefinition_type); - IFC4X3_RC3_IfcMaterialConstituentSet_type = new entity("IfcMaterialConstituentSet", false, 642, IFC4X3_RC3_IfcMaterialDefinition_type); - IFC4X3_RC3_IfcMaterialDefinitionRepresentation_type = new entity("IfcMaterialDefinitionRepresentation", false, 644, IFC4X3_RC3_IfcProductRepresentation_type); - IFC4X3_RC3_IfcMaterialLayerSetUsage_type = new entity("IfcMaterialLayerSetUsage", false, 647, IFC4X3_RC3_IfcMaterialUsageDefinition_type); - IFC4X3_RC3_IfcMaterialProfileSetUsage_type = new entity("IfcMaterialProfileSetUsage", false, 652, IFC4X3_RC3_IfcMaterialUsageDefinition_type); - IFC4X3_RC3_IfcMaterialProfileSetUsageTapering_type = new entity("IfcMaterialProfileSetUsageTapering", false, 653, IFC4X3_RC3_IfcMaterialProfileSetUsage_type); - IFC4X3_RC3_IfcMaterialProperties_type = new entity("IfcMaterialProperties", false, 655, IFC4X3_RC3_IfcExtendedProperties_type); - IFC4X3_RC3_IfcMaterialRelationship_type = new entity("IfcMaterialRelationship", false, 656, IFC4X3_RC3_IfcResourceLevelRelationship_type); - IFC4X3_RC3_IfcMirroredProfileDef_type = new entity("IfcMirroredProfileDef", false, 673, IFC4X3_RC3_IfcDerivedProfileDef_type); - IFC4X3_RC3_IfcObjectDefinition_type = new entity("IfcObjectDefinition", true, 704, IFC4X3_RC3_IfcRoot_type); - IFC4X3_RC3_IfcOpenCrossProfileDef_type = new entity("IfcOpenCrossProfileDef", false, 716, IFC4X3_RC3_IfcProfileDef_type); - IFC4X3_RC3_IfcOpenShell_type = new entity("IfcOpenShell", false, 720, IFC4X3_RC3_IfcConnectedFaceSet_type); - IFC4X3_RC3_IfcOrganizationRelationship_type = new entity("IfcOrganizationRelationship", false, 722, IFC4X3_RC3_IfcResourceLevelRelationship_type); - IFC4X3_RC3_IfcOrientedEdge_type = new entity("IfcOrientedEdge", false, 723, IFC4X3_RC3_IfcEdge_type); - IFC4X3_RC3_IfcParameterizedProfileDef_type = new entity("IfcParameterizedProfileDef", true, 729, IFC4X3_RC3_IfcProfileDef_type); - IFC4X3_RC3_IfcPath_type = new entity("IfcPath", false, 731, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); - IFC4X3_RC3_IfcPhysicalComplexQuantity_type = new entity("IfcPhysicalComplexQuantity", false, 744, IFC4X3_RC3_IfcPhysicalQuantity_type); - IFC4X3_RC3_IfcPixelTexture_type = new entity("IfcPixelTexture", false, 758, IFC4X3_RC3_IfcSurfaceTexture_type); - IFC4X3_RC3_IfcPlacement_type = new entity("IfcPlacement", true, 759, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcPlanarExtent_type = new entity("IfcPlanarExtent", false, 761, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcPoint_type = new entity("IfcPoint", true, 770, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcPointByDistanceExpression_type = new entity("IfcPointByDistanceExpression", false, 771, IFC4X3_RC3_IfcPoint_type); - IFC4X3_RC3_IfcPointOnCurve_type = new entity("IfcPointOnCurve", false, 772, IFC4X3_RC3_IfcPoint_type); - IFC4X3_RC3_IfcPointOnSurface_type = new entity("IfcPointOnSurface", false, 773, IFC4X3_RC3_IfcPoint_type); - IFC4X3_RC3_IfcPolyLoop_type = new entity("IfcPolyLoop", false, 778, IFC4X3_RC3_IfcLoop_type); - IFC4X3_RC3_IfcPolygonalBoundedHalfSpace_type = new entity("IfcPolygonalBoundedHalfSpace", false, 775, IFC4X3_RC3_IfcHalfSpaceSolid_type); - IFC4X3_RC3_IfcPreDefinedItem_type = new entity("IfcPreDefinedItem", true, 790, IFC4X3_RC3_IfcPresentationItem_type); - IFC4X3_RC3_IfcPreDefinedProperties_type = new entity("IfcPreDefinedProperties", true, 791, IFC4X3_RC3_IfcPropertyAbstraction_type); - IFC4X3_RC3_IfcPreDefinedTextFont_type = new entity("IfcPreDefinedTextFont", true, 793, IFC4X3_RC3_IfcPreDefinedItem_type); - IFC4X3_RC3_IfcProductDefinitionShape_type = new entity("IfcProductDefinitionShape", false, 807, IFC4X3_RC3_IfcProductRepresentation_type); - IFC4X3_RC3_IfcProfileProperties_type = new entity("IfcProfileProperties", false, 812, IFC4X3_RC3_IfcExtendedProperties_type); - IFC4X3_RC3_IfcProperty_type = new entity("IfcProperty", true, 822, IFC4X3_RC3_IfcPropertyAbstraction_type); - IFC4X3_RC3_IfcPropertyDefinition_type = new entity("IfcPropertyDefinition", true, 825, IFC4X3_RC3_IfcRoot_type); - IFC4X3_RC3_IfcPropertyDependencyRelationship_type = new entity("IfcPropertyDependencyRelationship", false, 826, IFC4X3_RC3_IfcResourceLevelRelationship_type); - IFC4X3_RC3_IfcPropertySetDefinition_type = new entity("IfcPropertySetDefinition", true, 832, IFC4X3_RC3_IfcPropertyDefinition_type); - IFC4X3_RC3_IfcPropertyTemplateDefinition_type = new entity("IfcPropertyTemplateDefinition", true, 840, IFC4X3_RC3_IfcPropertyDefinition_type); - IFC4X3_RC3_IfcQuantitySet_type = new entity("IfcQuantitySet", true, 854, IFC4X3_RC3_IfcPropertySetDefinition_type); - IFC4X3_RC3_IfcRectangleProfileDef_type = new entity("IfcRectangleProfileDef", false, 879, IFC4X3_RC3_IfcParameterizedProfileDef_type); - IFC4X3_RC3_IfcRegularTimeSeries_type = new entity("IfcRegularTimeSeries", false, 888, IFC4X3_RC3_IfcTimeSeries_type); - IFC4X3_RC3_IfcReinforcementBarProperties_type = new entity("IfcReinforcementBarProperties", false, 891, IFC4X3_RC3_IfcPreDefinedProperties_type); - IFC4X3_RC3_IfcRelationship_type = new entity("IfcRelationship", true, 920, IFC4X3_RC3_IfcRoot_type); - IFC4X3_RC3_IfcResourceApprovalRelationship_type = new entity("IfcResourceApprovalRelationship", false, 959, IFC4X3_RC3_IfcResourceLevelRelationship_type); - IFC4X3_RC3_IfcResourceConstraintRelationship_type = new entity("IfcResourceConstraintRelationship", false, 960, IFC4X3_RC3_IfcResourceLevelRelationship_type); - IFC4X3_RC3_IfcResourceTime_type = new entity("IfcResourceTime", false, 964, IFC4X3_RC3_IfcSchedulingTime_type); - IFC4X3_RC3_IfcRoundedRectangleProfileDef_type = new entity("IfcRoundedRectangleProfileDef", false, 981, IFC4X3_RC3_IfcRectangleProfileDef_type); - IFC4X3_RC3_IfcSectionProperties_type = new entity("IfcSectionProperties", false, 994, IFC4X3_RC3_IfcPreDefinedProperties_type); - IFC4X3_RC3_IfcSectionReinforcementProperties_type = new entity("IfcSectionReinforcementProperties", false, 995, IFC4X3_RC3_IfcPreDefinedProperties_type); - IFC4X3_RC3_IfcSectionedSpine_type = new entity("IfcSectionedSpine", false, 991, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcSegment_type = new entity("IfcSegment", true, 997, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcShellBasedSurfaceModel_type = new entity("IfcShellBasedSurfaceModel", false, 1012, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcSimpleProperty_type = new entity("IfcSimpleProperty", true, 1019, IFC4X3_RC3_IfcProperty_type); - IFC4X3_RC3_IfcSlippageConnectionCondition_type = new entity("IfcSlippageConnectionCondition", false, 1034, IFC4X3_RC3_IfcStructuralConnectionCondition_type); - IFC4X3_RC3_IfcSolidModel_type = new entity("IfcSolidModel", true, 1039, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcStructuralLoadLinearForce_type = new entity("IfcStructuralLoadLinearForce", false, 1097, IFC4X3_RC3_IfcStructuralLoadStatic_type); - IFC4X3_RC3_IfcStructuralLoadPlanarForce_type = new entity("IfcStructuralLoadPlanarForce", false, 1099, IFC4X3_RC3_IfcStructuralLoadStatic_type); - IFC4X3_RC3_IfcStructuralLoadSingleDisplacement_type = new entity("IfcStructuralLoadSingleDisplacement", false, 1100, IFC4X3_RC3_IfcStructuralLoadStatic_type); - IFC4X3_RC3_IfcStructuralLoadSingleDisplacementDistortion_type = new entity("IfcStructuralLoadSingleDisplacementDistortion", false, 1101, IFC4X3_RC3_IfcStructuralLoadSingleDisplacement_type); - IFC4X3_RC3_IfcStructuralLoadSingleForce_type = new entity("IfcStructuralLoadSingleForce", false, 1102, IFC4X3_RC3_IfcStructuralLoadStatic_type); - IFC4X3_RC3_IfcStructuralLoadSingleForceWarping_type = new entity("IfcStructuralLoadSingleForceWarping", false, 1103, IFC4X3_RC3_IfcStructuralLoadSingleForce_type); - IFC4X3_RC3_IfcSubedge_type = new entity("IfcSubedge", false, 1126, IFC4X3_RC3_IfcEdge_type); - IFC4X3_RC3_IfcSurface_type = new entity("IfcSurface", true, 1127, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcSurfaceStyleRendering_type = new entity("IfcSurfaceStyleRendering", false, 1141, IFC4X3_RC3_IfcSurfaceStyleShading_type); - IFC4X3_RC3_IfcSweptAreaSolid_type = new entity("IfcSweptAreaSolid", true, 1145, IFC4X3_RC3_IfcSolidModel_type); - IFC4X3_RC3_IfcSweptDiskSolid_type = new entity("IfcSweptDiskSolid", false, 1146, IFC4X3_RC3_IfcSolidModel_type); - IFC4X3_RC3_IfcSweptDiskSolidPolygonal_type = new entity("IfcSweptDiskSolidPolygonal", false, 1147, IFC4X3_RC3_IfcSweptDiskSolid_type); - IFC4X3_RC3_IfcSweptSurface_type = new entity("IfcSweptSurface", true, 1148, IFC4X3_RC3_IfcSurface_type); - IFC4X3_RC3_IfcTShapeProfileDef_type = new entity("IfcTShapeProfileDef", false, 1238, IFC4X3_RC3_IfcParameterizedProfileDef_type); - IFC4X3_RC3_IfcTessellatedItem_type = new entity("IfcTessellatedItem", true, 1181, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcTextLiteral_type = new entity("IfcTextLiteral", false, 1187, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcTextLiteralWithExtent_type = new entity("IfcTextLiteralWithExtent", false, 1188, IFC4X3_RC3_IfcTextLiteral_type); - IFC4X3_RC3_IfcTextStyleFontModel_type = new entity("IfcTextStyleFontModel", false, 1191, IFC4X3_RC3_IfcPreDefinedTextFont_type); - IFC4X3_RC3_IfcTrapeziumProfileDef_type = new entity("IfcTrapeziumProfileDef", false, 1232, IFC4X3_RC3_IfcParameterizedProfileDef_type); - IFC4X3_RC3_IfcTypeObject_type = new entity("IfcTypeObject", false, 1242, IFC4X3_RC3_IfcObjectDefinition_type); - IFC4X3_RC3_IfcTypeProcess_type = new entity("IfcTypeProcess", true, 1243, IFC4X3_RC3_IfcTypeObject_type); - IFC4X3_RC3_IfcTypeProduct_type = new entity("IfcTypeProduct", false, 1244, IFC4X3_RC3_IfcTypeObject_type); - IFC4X3_RC3_IfcTypeResource_type = new entity("IfcTypeResource", true, 1245, IFC4X3_RC3_IfcTypeObject_type); - IFC4X3_RC3_IfcUShapeProfileDef_type = new entity("IfcUShapeProfileDef", false, 1256, IFC4X3_RC3_IfcParameterizedProfileDef_type); - IFC4X3_RC3_IfcVector_type = new entity("IfcVector", false, 1262, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcVertexLoop_type = new entity("IfcVertexLoop", false, 1265, IFC4X3_RC3_IfcLoop_type); - IFC4X3_RC3_IfcWindowStyle_type = new entity("IfcWindowStyle", false, 1299, IFC4X3_RC3_IfcTypeProduct_type); - IFC4X3_RC3_IfcZShapeProfileDef_type = new entity("IfcZShapeProfileDef", false, 1314, IFC4X3_RC3_IfcParameterizedProfileDef_type); + IFC4X3_RC3_IfcDocumentInformation_type = new entity("IfcDocumentInformation", false, 333, IFC4X3_RC3_IfcExternalInformation_type); + IFC4X3_RC3_IfcDocumentInformationRelationship_type = new entity("IfcDocumentInformationRelationship", false, 334, IFC4X3_RC3_IfcResourceLevelRelationship_type); + IFC4X3_RC3_IfcDocumentReference_type = new entity("IfcDocumentReference", false, 335, IFC4X3_RC3_IfcExternalReference_type); + IFC4X3_RC3_IfcEdge_type = new entity("IfcEdge", false, 369, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); + IFC4X3_RC3_IfcEdgeCurve_type = new entity("IfcEdgeCurve", false, 370, IFC4X3_RC3_IfcEdge_type); + IFC4X3_RC3_IfcEventTime_type = new entity("IfcEventTime", false, 424, IFC4X3_RC3_IfcSchedulingTime_type); + IFC4X3_RC3_IfcExtendedProperties_type = new entity("IfcExtendedProperties", true, 428, IFC4X3_RC3_IfcPropertyAbstraction_type); + IFC4X3_RC3_IfcExternalReferenceRelationship_type = new entity("IfcExternalReferenceRelationship", false, 434, IFC4X3_RC3_IfcResourceLevelRelationship_type); + IFC4X3_RC3_IfcFace_type = new entity("IfcFace", false, 440, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); + IFC4X3_RC3_IfcFaceBound_type = new entity("IfcFaceBound", false, 442, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); + IFC4X3_RC3_IfcFaceOuterBound_type = new entity("IfcFaceOuterBound", false, 443, IFC4X3_RC3_IfcFaceBound_type); + IFC4X3_RC3_IfcFaceSurface_type = new entity("IfcFaceSurface", false, 444, IFC4X3_RC3_IfcFace_type); + IFC4X3_RC3_IfcFailureConnectionCondition_type = new entity("IfcFailureConnectionCondition", false, 452, IFC4X3_RC3_IfcStructuralConnectionCondition_type); + IFC4X3_RC3_IfcFillAreaStyle_type = new entity("IfcFillAreaStyle", false, 462, IFC4X3_RC3_IfcPresentationStyle_type); + IFC4X3_RC3_IfcGeometricRepresentationContext_type = new entity("IfcGeometricRepresentationContext", false, 512, IFC4X3_RC3_IfcRepresentationContext_type); + IFC4X3_RC3_IfcGeometricRepresentationItem_type = new entity("IfcGeometricRepresentationItem", true, 513, IFC4X3_RC3_IfcRepresentationItem_type); + IFC4X3_RC3_IfcGeometricRepresentationSubContext_type = new entity("IfcGeometricRepresentationSubContext", false, 514, IFC4X3_RC3_IfcGeometricRepresentationContext_type); + IFC4X3_RC3_IfcGeometricSet_type = new entity("IfcGeometricSet", false, 515, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcGridPlacement_type = new entity("IfcGridPlacement", false, 527, IFC4X3_RC3_IfcObjectPlacement_type); + IFC4X3_RC3_IfcHalfSpaceSolid_type = new entity("IfcHalfSpaceSolid", false, 531, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcImageTexture_type = new entity("IfcImageTexture", false, 543, IFC4X3_RC3_IfcSurfaceTexture_type); + IFC4X3_RC3_IfcIndexedColourMap_type = new entity("IfcIndexedColourMap", false, 549, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcIndexedTextureMap_type = new entity("IfcIndexedTextureMap", true, 553, IFC4X3_RC3_IfcTextureCoordinate_type); + IFC4X3_RC3_IfcIndexedTriangleTextureMap_type = new entity("IfcIndexedTriangleTextureMap", false, 554, IFC4X3_RC3_IfcIndexedTextureMap_type); + IFC4X3_RC3_IfcIrregularTimeSeries_type = new entity("IfcIrregularTimeSeries", false, 567, IFC4X3_RC3_IfcTimeSeries_type); + IFC4X3_RC3_IfcLagTime_type = new entity("IfcLagTime", false, 582, IFC4X3_RC3_IfcSchedulingTime_type); + IFC4X3_RC3_IfcLightSource_type = new entity("IfcLightSource", true, 601, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcLightSourceAmbient_type = new entity("IfcLightSourceAmbient", false, 602, IFC4X3_RC3_IfcLightSource_type); + IFC4X3_RC3_IfcLightSourceDirectional_type = new entity("IfcLightSourceDirectional", false, 603, IFC4X3_RC3_IfcLightSource_type); + IFC4X3_RC3_IfcLightSourceGoniometric_type = new entity("IfcLightSourceGoniometric", false, 604, IFC4X3_RC3_IfcLightSource_type); + IFC4X3_RC3_IfcLightSourcePositional_type = new entity("IfcLightSourcePositional", false, 605, IFC4X3_RC3_IfcLightSource_type); + IFC4X3_RC3_IfcLightSourceSpot_type = new entity("IfcLightSourceSpot", false, 606, IFC4X3_RC3_IfcLightSourcePositional_type); + IFC4X3_RC3_IfcLinearPlacement_type = new entity("IfcLinearPlacement", false, 611, IFC4X3_RC3_IfcObjectPlacement_type); + IFC4X3_RC3_IfcLocalPlacement_type = new entity("IfcLocalPlacement", false, 620, IFC4X3_RC3_IfcObjectPlacement_type); + IFC4X3_RC3_IfcLoop_type = new entity("IfcLoop", false, 623, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); + IFC4X3_RC3_IfcMappedItem_type = new entity("IfcMappedItem", false, 632, IFC4X3_RC3_IfcRepresentationItem_type); + IFC4X3_RC3_IfcMaterial_type = new entity("IfcMaterial", false, 640, IFC4X3_RC3_IfcMaterialDefinition_type); + IFC4X3_RC3_IfcMaterialConstituent_type = new entity("IfcMaterialConstituent", false, 642, IFC4X3_RC3_IfcMaterialDefinition_type); + IFC4X3_RC3_IfcMaterialConstituentSet_type = new entity("IfcMaterialConstituentSet", false, 643, IFC4X3_RC3_IfcMaterialDefinition_type); + IFC4X3_RC3_IfcMaterialDefinitionRepresentation_type = new entity("IfcMaterialDefinitionRepresentation", false, 645, IFC4X3_RC3_IfcProductRepresentation_type); + IFC4X3_RC3_IfcMaterialLayerSetUsage_type = new entity("IfcMaterialLayerSetUsage", false, 648, IFC4X3_RC3_IfcMaterialUsageDefinition_type); + IFC4X3_RC3_IfcMaterialProfileSetUsage_type = new entity("IfcMaterialProfileSetUsage", false, 653, IFC4X3_RC3_IfcMaterialUsageDefinition_type); + IFC4X3_RC3_IfcMaterialProfileSetUsageTapering_type = new entity("IfcMaterialProfileSetUsageTapering", false, 654, IFC4X3_RC3_IfcMaterialProfileSetUsage_type); + IFC4X3_RC3_IfcMaterialProperties_type = new entity("IfcMaterialProperties", false, 656, IFC4X3_RC3_IfcExtendedProperties_type); + IFC4X3_RC3_IfcMaterialRelationship_type = new entity("IfcMaterialRelationship", false, 657, IFC4X3_RC3_IfcResourceLevelRelationship_type); + IFC4X3_RC3_IfcMirroredProfileDef_type = new entity("IfcMirroredProfileDef", false, 674, IFC4X3_RC3_IfcDerivedProfileDef_type); + IFC4X3_RC3_IfcObjectDefinition_type = new entity("IfcObjectDefinition", true, 705, IFC4X3_RC3_IfcRoot_type); + IFC4X3_RC3_IfcOpenCrossProfileDef_type = new entity("IfcOpenCrossProfileDef", false, 717, IFC4X3_RC3_IfcProfileDef_type); + IFC4X3_RC3_IfcOpenShell_type = new entity("IfcOpenShell", false, 721, IFC4X3_RC3_IfcConnectedFaceSet_type); + IFC4X3_RC3_IfcOrganizationRelationship_type = new entity("IfcOrganizationRelationship", false, 723, IFC4X3_RC3_IfcResourceLevelRelationship_type); + IFC4X3_RC3_IfcOrientedEdge_type = new entity("IfcOrientedEdge", false, 724, IFC4X3_RC3_IfcEdge_type); + IFC4X3_RC3_IfcParameterizedProfileDef_type = new entity("IfcParameterizedProfileDef", true, 730, IFC4X3_RC3_IfcProfileDef_type); + IFC4X3_RC3_IfcPath_type = new entity("IfcPath", false, 732, IFC4X3_RC3_IfcTopologicalRepresentationItem_type); + IFC4X3_RC3_IfcPhysicalComplexQuantity_type = new entity("IfcPhysicalComplexQuantity", false, 746, IFC4X3_RC3_IfcPhysicalQuantity_type); + IFC4X3_RC3_IfcPixelTexture_type = new entity("IfcPixelTexture", false, 760, IFC4X3_RC3_IfcSurfaceTexture_type); + IFC4X3_RC3_IfcPlacement_type = new entity("IfcPlacement", true, 761, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcPlanarExtent_type = new entity("IfcPlanarExtent", false, 763, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcPoint_type = new entity("IfcPoint", true, 772, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcPointByDistanceExpression_type = new entity("IfcPointByDistanceExpression", false, 773, IFC4X3_RC3_IfcPoint_type); + IFC4X3_RC3_IfcPointOnCurve_type = new entity("IfcPointOnCurve", false, 774, IFC4X3_RC3_IfcPoint_type); + IFC4X3_RC3_IfcPointOnSurface_type = new entity("IfcPointOnSurface", false, 775, IFC4X3_RC3_IfcPoint_type); + IFC4X3_RC3_IfcPolyLoop_type = new entity("IfcPolyLoop", false, 780, IFC4X3_RC3_IfcLoop_type); + IFC4X3_RC3_IfcPolygonalBoundedHalfSpace_type = new entity("IfcPolygonalBoundedHalfSpace", false, 777, IFC4X3_RC3_IfcHalfSpaceSolid_type); + IFC4X3_RC3_IfcPreDefinedItem_type = new entity("IfcPreDefinedItem", true, 792, IFC4X3_RC3_IfcPresentationItem_type); + IFC4X3_RC3_IfcPreDefinedProperties_type = new entity("IfcPreDefinedProperties", true, 793, IFC4X3_RC3_IfcPropertyAbstraction_type); + IFC4X3_RC3_IfcPreDefinedTextFont_type = new entity("IfcPreDefinedTextFont", true, 795, IFC4X3_RC3_IfcPreDefinedItem_type); + IFC4X3_RC3_IfcProductDefinitionShape_type = new entity("IfcProductDefinitionShape", false, 809, IFC4X3_RC3_IfcProductRepresentation_type); + IFC4X3_RC3_IfcProfileProperties_type = new entity("IfcProfileProperties", false, 814, IFC4X3_RC3_IfcExtendedProperties_type); + IFC4X3_RC3_IfcProperty_type = new entity("IfcProperty", true, 824, IFC4X3_RC3_IfcPropertyAbstraction_type); + IFC4X3_RC3_IfcPropertyDefinition_type = new entity("IfcPropertyDefinition", true, 827, IFC4X3_RC3_IfcRoot_type); + IFC4X3_RC3_IfcPropertyDependencyRelationship_type = new entity("IfcPropertyDependencyRelationship", false, 828, IFC4X3_RC3_IfcResourceLevelRelationship_type); + IFC4X3_RC3_IfcPropertySetDefinition_type = new entity("IfcPropertySetDefinition", true, 834, IFC4X3_RC3_IfcPropertyDefinition_type); + IFC4X3_RC3_IfcPropertyTemplateDefinition_type = new entity("IfcPropertyTemplateDefinition", true, 842, IFC4X3_RC3_IfcPropertyDefinition_type); + IFC4X3_RC3_IfcQuantitySet_type = new entity("IfcQuantitySet", true, 856, IFC4X3_RC3_IfcPropertySetDefinition_type); + IFC4X3_RC3_IfcRectangleProfileDef_type = new entity("IfcRectangleProfileDef", false, 881, IFC4X3_RC3_IfcParameterizedProfileDef_type); + IFC4X3_RC3_IfcRegularTimeSeries_type = new entity("IfcRegularTimeSeries", false, 890, IFC4X3_RC3_IfcTimeSeries_type); + IFC4X3_RC3_IfcReinforcementBarProperties_type = new entity("IfcReinforcementBarProperties", false, 893, IFC4X3_RC3_IfcPreDefinedProperties_type); + IFC4X3_RC3_IfcRelationship_type = new entity("IfcRelationship", true, 922, IFC4X3_RC3_IfcRoot_type); + IFC4X3_RC3_IfcResourceApprovalRelationship_type = new entity("IfcResourceApprovalRelationship", false, 961, IFC4X3_RC3_IfcResourceLevelRelationship_type); + IFC4X3_RC3_IfcResourceConstraintRelationship_type = new entity("IfcResourceConstraintRelationship", false, 962, IFC4X3_RC3_IfcResourceLevelRelationship_type); + IFC4X3_RC3_IfcResourceTime_type = new entity("IfcResourceTime", false, 966, IFC4X3_RC3_IfcSchedulingTime_type); + IFC4X3_RC3_IfcRoundedRectangleProfileDef_type = new entity("IfcRoundedRectangleProfileDef", false, 983, IFC4X3_RC3_IfcRectangleProfileDef_type); + IFC4X3_RC3_IfcSectionProperties_type = new entity("IfcSectionProperties", false, 996, IFC4X3_RC3_IfcPreDefinedProperties_type); + IFC4X3_RC3_IfcSectionReinforcementProperties_type = new entity("IfcSectionReinforcementProperties", false, 997, IFC4X3_RC3_IfcPreDefinedProperties_type); + IFC4X3_RC3_IfcSectionedSpine_type = new entity("IfcSectionedSpine", false, 993, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcSegment_type = new entity("IfcSegment", true, 999, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcShellBasedSurfaceModel_type = new entity("IfcShellBasedSurfaceModel", false, 1014, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcSimpleProperty_type = new entity("IfcSimpleProperty", true, 1021, IFC4X3_RC3_IfcProperty_type); + IFC4X3_RC3_IfcSlippageConnectionCondition_type = new entity("IfcSlippageConnectionCondition", false, 1036, IFC4X3_RC3_IfcStructuralConnectionCondition_type); + IFC4X3_RC3_IfcSolidModel_type = new entity("IfcSolidModel", true, 1041, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcStructuralLoadLinearForce_type = new entity("IfcStructuralLoadLinearForce", false, 1099, IFC4X3_RC3_IfcStructuralLoadStatic_type); + IFC4X3_RC3_IfcStructuralLoadPlanarForce_type = new entity("IfcStructuralLoadPlanarForce", false, 1101, IFC4X3_RC3_IfcStructuralLoadStatic_type); + IFC4X3_RC3_IfcStructuralLoadSingleDisplacement_type = new entity("IfcStructuralLoadSingleDisplacement", false, 1102, IFC4X3_RC3_IfcStructuralLoadStatic_type); + IFC4X3_RC3_IfcStructuralLoadSingleDisplacementDistortion_type = new entity("IfcStructuralLoadSingleDisplacementDistortion", false, 1103, IFC4X3_RC3_IfcStructuralLoadSingleDisplacement_type); + IFC4X3_RC3_IfcStructuralLoadSingleForce_type = new entity("IfcStructuralLoadSingleForce", false, 1104, IFC4X3_RC3_IfcStructuralLoadStatic_type); + IFC4X3_RC3_IfcStructuralLoadSingleForceWarping_type = new entity("IfcStructuralLoadSingleForceWarping", false, 1105, IFC4X3_RC3_IfcStructuralLoadSingleForce_type); + IFC4X3_RC3_IfcSubedge_type = new entity("IfcSubedge", false, 1128, IFC4X3_RC3_IfcEdge_type); + IFC4X3_RC3_IfcSurface_type = new entity("IfcSurface", true, 1129, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcSurfaceStyleRendering_type = new entity("IfcSurfaceStyleRendering", false, 1143, IFC4X3_RC3_IfcSurfaceStyleShading_type); + IFC4X3_RC3_IfcSweptAreaSolid_type = new entity("IfcSweptAreaSolid", true, 1147, IFC4X3_RC3_IfcSolidModel_type); + IFC4X3_RC3_IfcSweptDiskSolid_type = new entity("IfcSweptDiskSolid", false, 1148, IFC4X3_RC3_IfcSolidModel_type); + IFC4X3_RC3_IfcSweptDiskSolidPolygonal_type = new entity("IfcSweptDiskSolidPolygonal", false, 1149, IFC4X3_RC3_IfcSweptDiskSolid_type); + IFC4X3_RC3_IfcSweptSurface_type = new entity("IfcSweptSurface", true, 1150, IFC4X3_RC3_IfcSurface_type); + IFC4X3_RC3_IfcTShapeProfileDef_type = new entity("IfcTShapeProfileDef", false, 1240, IFC4X3_RC3_IfcParameterizedProfileDef_type); + IFC4X3_RC3_IfcTessellatedItem_type = new entity("IfcTessellatedItem", true, 1183, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcTextLiteral_type = new entity("IfcTextLiteral", false, 1189, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcTextLiteralWithExtent_type = new entity("IfcTextLiteralWithExtent", false, 1190, IFC4X3_RC3_IfcTextLiteral_type); + IFC4X3_RC3_IfcTextStyleFontModel_type = new entity("IfcTextStyleFontModel", false, 1193, IFC4X3_RC3_IfcPreDefinedTextFont_type); + IFC4X3_RC3_IfcTrapeziumProfileDef_type = new entity("IfcTrapeziumProfileDef", false, 1234, IFC4X3_RC3_IfcParameterizedProfileDef_type); + IFC4X3_RC3_IfcTypeObject_type = new entity("IfcTypeObject", false, 1244, IFC4X3_RC3_IfcObjectDefinition_type); + IFC4X3_RC3_IfcTypeProcess_type = new entity("IfcTypeProcess", true, 1245, IFC4X3_RC3_IfcTypeObject_type); + IFC4X3_RC3_IfcTypeProduct_type = new entity("IfcTypeProduct", false, 1246, IFC4X3_RC3_IfcTypeObject_type); + IFC4X3_RC3_IfcTypeResource_type = new entity("IfcTypeResource", true, 1247, IFC4X3_RC3_IfcTypeObject_type); + IFC4X3_RC3_IfcUShapeProfileDef_type = new entity("IfcUShapeProfileDef", false, 1258, IFC4X3_RC3_IfcParameterizedProfileDef_type); + IFC4X3_RC3_IfcVector_type = new entity("IfcVector", false, 1264, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcVertexLoop_type = new entity("IfcVertexLoop", false, 1267, IFC4X3_RC3_IfcLoop_type); + IFC4X3_RC3_IfcWindowStyle_type = new entity("IfcWindowStyle", false, 1301, IFC4X3_RC3_IfcTypeProduct_type); + IFC4X3_RC3_IfcZShapeProfileDef_type = new entity("IfcZShapeProfileDef", false, 1316, IFC4X3_RC3_IfcParameterizedProfileDef_type); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcClassification_type); @@ -6367,13 +6404,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcDocumentInformation_type); items.push_back(IFC4X3_RC3_IfcDocumentReference_type); - IFC4X3_RC3_IfcDocumentSelect_type = new select_type("IfcDocumentSelect", 335, items); + IFC4X3_RC3_IfcDocumentSelect_type = new select_type("IfcDocumentSelect", 336, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcPositiveLengthMeasure_type); items.push_back(IFC4X3_RC3_IfcVector_type); - IFC4X3_RC3_IfcHatchLineDistanceSelect_type = new select_type("IfcHatchLineDistanceSelect", 531, items); + IFC4X3_RC3_IfcHatchLineDistanceSelect_type = new select_type("IfcHatchLineDistanceSelect", 532, items); } { std::vector items; items.reserve(23); @@ -6400,21 +6437,21 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcThermodynamicTemperatureMeasure_type); items.push_back(IFC4X3_RC3_IfcTimeMeasure_type); items.push_back(IFC4X3_RC3_IfcVolumeMeasure_type); - IFC4X3_RC3_IfcMeasureValue_type = new select_type("IfcMeasureValue", 659, items); + IFC4X3_RC3_IfcMeasureValue_type = new select_type("IfcMeasureValue", 660, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcPoint_type); items.push_back(IFC4X3_RC3_IfcVertexPoint_type); - IFC4X3_RC3_IfcPointOrVertexPoint_type = new select_type("IfcPointOrVertexPoint", 774, items); + IFC4X3_RC3_IfcPointOrVertexPoint_type = new select_type("IfcPointOrVertexPoint", 776, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcProductDefinitionShape_type); items.push_back(IFC4X3_RC3_IfcRepresentationMap_type); - IFC4X3_RC3_IfcProductRepresentationSelect_type = new select_type("IfcProductRepresentationSelect", 809, items); + IFC4X3_RC3_IfcProductRepresentationSelect_type = new select_type("IfcProductRepresentationSelect", 811, items); } - IFC4X3_RC3_IfcPropertySetDefinitionSet_type = new type_declaration("IfcPropertySetDefinitionSet", 834, new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X3_RC3_IfcPropertySetDefinition_type))); + IFC4X3_RC3_IfcPropertySetDefinitionSet_type = new type_declaration("IfcPropertySetDefinitionSet", 836, new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X3_RC3_IfcPropertySetDefinition_type))); { std::vector items; items.reserve(17); items.push_back(IFC4X3_RC3_IfcActorRole_type); @@ -6434,20 +6471,20 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcPropertyAbstraction_type); items.push_back(IFC4X3_RC3_IfcShapeAspect_type); items.push_back(IFC4X3_RC3_IfcTimeSeries_type); - IFC4X3_RC3_IfcResourceObjectSelect_type = new select_type("IfcResourceObjectSelect", 962, items); + IFC4X3_RC3_IfcResourceObjectSelect_type = new select_type("IfcResourceObjectSelect", 964, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcExternallyDefinedTextFont_type); items.push_back(IFC4X3_RC3_IfcPreDefinedTextFont_type); - IFC4X3_RC3_IfcTextFontSelect_type = new select_type("IfcTextFontSelect", 1186, items); + IFC4X3_RC3_IfcTextFontSelect_type = new select_type("IfcTextFontSelect", 1188, items); } { std::vector items; items.reserve(3); items.push_back(IFC4X3_RC3_IfcDerivedMeasureValue_type); items.push_back(IFC4X3_RC3_IfcMeasureValue_type); items.push_back(IFC4X3_RC3_IfcSimpleValue_type); - IFC4X3_RC3_IfcValue_type = new select_type("IfcValue", 1257, items); + IFC4X3_RC3_IfcValue_type = new select_type("IfcValue", 1259, items); } IFC4X3_RC3_IfcAdvancedFace_type = new entity("IfcAdvancedFace", false, 16, IFC4X3_RC3_IfcFaceSurface_type); IFC4X3_RC3_IfcAnnotationFillArea_type = new entity("IfcAnnotationFillArea", false, 47, IFC4X3_RC3_IfcGeometricRepresentationItem_type); @@ -6486,153 +6523,153 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcCurveSegment_type = new entity("IfcCurveSegment", false, 281, IFC4X3_RC3_IfcSegment_type); IFC4X3_RC3_IfcDirection_type = new entity("IfcDirection", false, 307, IFC4X3_RC3_IfcGeometricRepresentationItem_type); IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type = new entity("IfcDirectrixCurveSweptAreaSolid", true, 309, IFC4X3_RC3_IfcSweptAreaSolid_type); - IFC4X3_RC3_IfcDirectrixDistanceSweptAreaSolid_type = new entity("IfcDirectrixDistanceSweptAreaSolid", true, 310, IFC4X3_RC3_IfcSweptAreaSolid_type); - IFC4X3_RC3_IfcDoorStyle_type = new entity("IfcDoorStyle", false, 343, IFC4X3_RC3_IfcTypeProduct_type); - IFC4X3_RC3_IfcEdgeLoop_type = new entity("IfcEdgeLoop", false, 370, IFC4X3_RC3_IfcLoop_type); - IFC4X3_RC3_IfcElementQuantity_type = new entity("IfcElementQuantity", false, 406, IFC4X3_RC3_IfcQuantitySet_type); - IFC4X3_RC3_IfcElementType_type = new entity("IfcElementType", true, 407, IFC4X3_RC3_IfcTypeProduct_type); - IFC4X3_RC3_IfcElementarySurface_type = new entity("IfcElementarySurface", true, 399, IFC4X3_RC3_IfcSurface_type); - IFC4X3_RC3_IfcEllipseProfileDef_type = new entity("IfcEllipseProfileDef", false, 409, IFC4X3_RC3_IfcParameterizedProfileDef_type); - IFC4X3_RC3_IfcEventType_type = new entity("IfcEventType", false, 425, IFC4X3_RC3_IfcTypeProcess_type); - IFC4X3_RC3_IfcExtrudedAreaSolid_type = new entity("IfcExtrudedAreaSolid", false, 437, IFC4X3_RC3_IfcSweptAreaSolid_type); - IFC4X3_RC3_IfcExtrudedAreaSolidTapered_type = new entity("IfcExtrudedAreaSolidTapered", false, 438, IFC4X3_RC3_IfcExtrudedAreaSolid_type); - IFC4X3_RC3_IfcFaceBasedSurfaceModel_type = new entity("IfcFaceBasedSurfaceModel", false, 440, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcFillAreaStyleHatching_type = new entity("IfcFillAreaStyleHatching", false, 462, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcFillAreaStyleTiles_type = new entity("IfcFillAreaStyleTiles", false, 463, IFC4X3_RC3_IfcGeometricRepresentationItem_type); - IFC4X3_RC3_IfcFixedReferenceSweptAreaSolid_type = new entity("IfcFixedReferenceSweptAreaSolid", false, 471, IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type); - IFC4X3_RC3_IfcFurnishingElementType_type = new entity("IfcFurnishingElementType", false, 502, IFC4X3_RC3_IfcElementType_type); - IFC4X3_RC3_IfcFurnitureType_type = new entity("IfcFurnitureType", false, 504, IFC4X3_RC3_IfcFurnishingElementType_type); - IFC4X3_RC3_IfcGeographicElementType_type = new entity("IfcGeographicElementType", false, 507, IFC4X3_RC3_IfcElementType_type); - IFC4X3_RC3_IfcGeometricCurveSet_type = new entity("IfcGeometricCurveSet", false, 509, IFC4X3_RC3_IfcGeometricSet_type); - IFC4X3_RC3_IfcIShapeProfileDef_type = new entity("IfcIShapeProfileDef", false, 568, IFC4X3_RC3_IfcParameterizedProfileDef_type); - IFC4X3_RC3_IfcInclinedReferenceSweptAreaSolid_type = new entity("IfcInclinedReferenceSweptAreaSolid", false, 547, IFC4X3_RC3_IfcDirectrixDistanceSweptAreaSolid_type); - IFC4X3_RC3_IfcIndexedPolygonalFace_type = new entity("IfcIndexedPolygonalFace", false, 550, IFC4X3_RC3_IfcTessellatedItem_type); - IFC4X3_RC3_IfcIndexedPolygonalFaceWithVoids_type = new entity("IfcIndexedPolygonalFaceWithVoids", false, 551, IFC4X3_RC3_IfcIndexedPolygonalFace_type); - IFC4X3_RC3_IfcLShapeProfileDef_type = new entity("IfcLShapeProfileDef", false, 623, IFC4X3_RC3_IfcParameterizedProfileDef_type); - IFC4X3_RC3_IfcLaborResourceType_type = new entity("IfcLaborResourceType", false, 579, IFC4X3_RC3_IfcConstructionResourceType_type); - IFC4X3_RC3_IfcLine_type = new entity("IfcLine", false, 606, IFC4X3_RC3_IfcCurve_type); - IFC4X3_RC3_IfcManifoldSolidBrep_type = new entity("IfcManifoldSolidBrep", true, 629, IFC4X3_RC3_IfcSolidModel_type); - IFC4X3_RC3_IfcObject_type = new entity("IfcObject", true, 703, IFC4X3_RC3_IfcObjectDefinition_type); - IFC4X3_RC3_IfcOffsetCurve_type = new entity("IfcOffsetCurve", true, 712, IFC4X3_RC3_IfcCurve_type); - IFC4X3_RC3_IfcOffsetCurve2D_type = new entity("IfcOffsetCurve2D", false, 713, IFC4X3_RC3_IfcOffsetCurve_type); - IFC4X3_RC3_IfcOffsetCurve3D_type = new entity("IfcOffsetCurve3D", false, 714, IFC4X3_RC3_IfcOffsetCurve_type); - IFC4X3_RC3_IfcOffsetCurveByDistances_type = new entity("IfcOffsetCurveByDistances", false, 715, IFC4X3_RC3_IfcOffsetCurve_type); - IFC4X3_RC3_IfcPcurve_type = new entity("IfcPcurve", false, 734, IFC4X3_RC3_IfcCurve_type); - IFC4X3_RC3_IfcPlanarBox_type = new entity("IfcPlanarBox", false, 760, IFC4X3_RC3_IfcPlanarExtent_type); - IFC4X3_RC3_IfcPlane_type = new entity("IfcPlane", false, 763, IFC4X3_RC3_IfcElementarySurface_type); - IFC4X3_RC3_IfcPolynomialCurve_type = new entity("IfcPolynomialCurve", false, 779, IFC4X3_RC3_IfcCurve_type); - IFC4X3_RC3_IfcPreDefinedColour_type = new entity("IfcPreDefinedColour", true, 788, IFC4X3_RC3_IfcPreDefinedItem_type); - IFC4X3_RC3_IfcPreDefinedCurveFont_type = new entity("IfcPreDefinedCurveFont", true, 789, IFC4X3_RC3_IfcPreDefinedItem_type); - IFC4X3_RC3_IfcPreDefinedPropertySet_type = new entity("IfcPreDefinedPropertySet", true, 792, IFC4X3_RC3_IfcPropertySetDefinition_type); - IFC4X3_RC3_IfcProcedureType_type = new entity("IfcProcedureType", false, 802, IFC4X3_RC3_IfcTypeProcess_type); - IFC4X3_RC3_IfcProcess_type = new entity("IfcProcess", true, 804, IFC4X3_RC3_IfcObject_type); - IFC4X3_RC3_IfcProduct_type = new entity("IfcProduct", true, 806, IFC4X3_RC3_IfcObject_type); - IFC4X3_RC3_IfcProject_type = new entity("IfcProject", false, 814, IFC4X3_RC3_IfcContext_type); - IFC4X3_RC3_IfcProjectLibrary_type = new entity("IfcProjectLibrary", false, 819, IFC4X3_RC3_IfcContext_type); - IFC4X3_RC3_IfcPropertyBoundedValue_type = new entity("IfcPropertyBoundedValue", false, 824, IFC4X3_RC3_IfcSimpleProperty_type); - IFC4X3_RC3_IfcPropertyEnumeratedValue_type = new entity("IfcPropertyEnumeratedValue", false, 827, IFC4X3_RC3_IfcSimpleProperty_type); - IFC4X3_RC3_IfcPropertyListValue_type = new entity("IfcPropertyListValue", false, 829, IFC4X3_RC3_IfcSimpleProperty_type); - IFC4X3_RC3_IfcPropertyReferenceValue_type = new entity("IfcPropertyReferenceValue", false, 830, IFC4X3_RC3_IfcSimpleProperty_type); - IFC4X3_RC3_IfcPropertySet_type = new entity("IfcPropertySet", false, 831, IFC4X3_RC3_IfcPropertySetDefinition_type); - IFC4X3_RC3_IfcPropertySetTemplate_type = new entity("IfcPropertySetTemplate", false, 835, IFC4X3_RC3_IfcPropertyTemplateDefinition_type); - IFC4X3_RC3_IfcPropertySingleValue_type = new entity("IfcPropertySingleValue", false, 837, IFC4X3_RC3_IfcSimpleProperty_type); - IFC4X3_RC3_IfcPropertyTableValue_type = new entity("IfcPropertyTableValue", false, 838, IFC4X3_RC3_IfcSimpleProperty_type); - IFC4X3_RC3_IfcPropertyTemplate_type = new entity("IfcPropertyTemplate", true, 839, IFC4X3_RC3_IfcPropertyTemplateDefinition_type); - IFC4X3_RC3_IfcProxy_type = new entity("IfcProxy", false, 847, IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcRectangleHollowProfileDef_type = new entity("IfcRectangleHollowProfileDef", false, 878, IFC4X3_RC3_IfcRectangleProfileDef_type); - IFC4X3_RC3_IfcRectangularPyramid_type = new entity("IfcRectangularPyramid", false, 880, IFC4X3_RC3_IfcCsgPrimitive3D_type); - IFC4X3_RC3_IfcRectangularTrimmedSurface_type = new entity("IfcRectangularTrimmedSurface", false, 881, IFC4X3_RC3_IfcBoundedSurface_type); - IFC4X3_RC3_IfcReinforcementDefinitionProperties_type = new entity("IfcReinforcementDefinitionProperties", false, 892, IFC4X3_RC3_IfcPreDefinedPropertySet_type); - IFC4X3_RC3_IfcRelAssigns_type = new entity("IfcRelAssigns", true, 904, IFC4X3_RC3_IfcRelationship_type); - IFC4X3_RC3_IfcRelAssignsToActor_type = new entity("IfcRelAssignsToActor", false, 905, IFC4X3_RC3_IfcRelAssigns_type); - IFC4X3_RC3_IfcRelAssignsToControl_type = new entity("IfcRelAssignsToControl", false, 906, IFC4X3_RC3_IfcRelAssigns_type); - IFC4X3_RC3_IfcRelAssignsToGroup_type = new entity("IfcRelAssignsToGroup", false, 907, IFC4X3_RC3_IfcRelAssigns_type); - IFC4X3_RC3_IfcRelAssignsToGroupByFactor_type = new entity("IfcRelAssignsToGroupByFactor", false, 908, IFC4X3_RC3_IfcRelAssignsToGroup_type); - IFC4X3_RC3_IfcRelAssignsToProcess_type = new entity("IfcRelAssignsToProcess", false, 909, IFC4X3_RC3_IfcRelAssigns_type); - IFC4X3_RC3_IfcRelAssignsToProduct_type = new entity("IfcRelAssignsToProduct", false, 910, IFC4X3_RC3_IfcRelAssigns_type); - IFC4X3_RC3_IfcRelAssignsToResource_type = new entity("IfcRelAssignsToResource", false, 911, IFC4X3_RC3_IfcRelAssigns_type); - IFC4X3_RC3_IfcRelAssociates_type = new entity("IfcRelAssociates", true, 912, IFC4X3_RC3_IfcRelationship_type); - IFC4X3_RC3_IfcRelAssociatesApproval_type = new entity("IfcRelAssociatesApproval", false, 913, IFC4X3_RC3_IfcRelAssociates_type); - IFC4X3_RC3_IfcRelAssociatesClassification_type = new entity("IfcRelAssociatesClassification", false, 914, IFC4X3_RC3_IfcRelAssociates_type); - IFC4X3_RC3_IfcRelAssociatesConstraint_type = new entity("IfcRelAssociatesConstraint", false, 915, IFC4X3_RC3_IfcRelAssociates_type); - IFC4X3_RC3_IfcRelAssociatesDocument_type = new entity("IfcRelAssociatesDocument", false, 916, IFC4X3_RC3_IfcRelAssociates_type); - IFC4X3_RC3_IfcRelAssociatesLibrary_type = new entity("IfcRelAssociatesLibrary", false, 917, IFC4X3_RC3_IfcRelAssociates_type); - IFC4X3_RC3_IfcRelAssociatesMaterial_type = new entity("IfcRelAssociatesMaterial", false, 918, IFC4X3_RC3_IfcRelAssociates_type); - IFC4X3_RC3_IfcRelAssociatesProfileDef_type = new entity("IfcRelAssociatesProfileDef", false, 919, IFC4X3_RC3_IfcRelAssociates_type); - IFC4X3_RC3_IfcRelConnects_type = new entity("IfcRelConnects", true, 921, IFC4X3_RC3_IfcRelationship_type); - IFC4X3_RC3_IfcRelConnectsElements_type = new entity("IfcRelConnectsElements", false, 922, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelConnectsPathElements_type = new entity("IfcRelConnectsPathElements", false, 923, IFC4X3_RC3_IfcRelConnectsElements_type); - IFC4X3_RC3_IfcRelConnectsPortToElement_type = new entity("IfcRelConnectsPortToElement", false, 925, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelConnectsPorts_type = new entity("IfcRelConnectsPorts", false, 924, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelConnectsStructuralActivity_type = new entity("IfcRelConnectsStructuralActivity", false, 926, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelConnectsStructuralMember_type = new entity("IfcRelConnectsStructuralMember", false, 927, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelConnectsWithEccentricity_type = new entity("IfcRelConnectsWithEccentricity", false, 928, IFC4X3_RC3_IfcRelConnectsStructuralMember_type); - IFC4X3_RC3_IfcRelConnectsWithRealizingElements_type = new entity("IfcRelConnectsWithRealizingElements", false, 929, IFC4X3_RC3_IfcRelConnectsElements_type); - IFC4X3_RC3_IfcRelContainedInSpatialStructure_type = new entity("IfcRelContainedInSpatialStructure", false, 930, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelCoversBldgElements_type = new entity("IfcRelCoversBldgElements", false, 931, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelCoversSpaces_type = new entity("IfcRelCoversSpaces", false, 932, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelDeclares_type = new entity("IfcRelDeclares", false, 933, IFC4X3_RC3_IfcRelationship_type); - IFC4X3_RC3_IfcRelDecomposes_type = new entity("IfcRelDecomposes", true, 934, IFC4X3_RC3_IfcRelationship_type); - IFC4X3_RC3_IfcRelDefines_type = new entity("IfcRelDefines", true, 935, IFC4X3_RC3_IfcRelationship_type); - IFC4X3_RC3_IfcRelDefinesByObject_type = new entity("IfcRelDefinesByObject", false, 936, IFC4X3_RC3_IfcRelDefines_type); - IFC4X3_RC3_IfcRelDefinesByProperties_type = new entity("IfcRelDefinesByProperties", false, 937, IFC4X3_RC3_IfcRelDefines_type); - IFC4X3_RC3_IfcRelDefinesByTemplate_type = new entity("IfcRelDefinesByTemplate", false, 938, IFC4X3_RC3_IfcRelDefines_type); - IFC4X3_RC3_IfcRelDefinesByType_type = new entity("IfcRelDefinesByType", false, 939, IFC4X3_RC3_IfcRelDefines_type); - IFC4X3_RC3_IfcRelFillsElement_type = new entity("IfcRelFillsElement", false, 940, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelFlowControlElements_type = new entity("IfcRelFlowControlElements", false, 941, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelInterferesElements_type = new entity("IfcRelInterferesElements", false, 942, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelNests_type = new entity("IfcRelNests", false, 943, IFC4X3_RC3_IfcRelDecomposes_type); - IFC4X3_RC3_IfcRelPositions_type = new entity("IfcRelPositions", false, 944, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelProjectsElement_type = new entity("IfcRelProjectsElement", false, 945, IFC4X3_RC3_IfcRelDecomposes_type); - IFC4X3_RC3_IfcRelReferencedInSpatialStructure_type = new entity("IfcRelReferencedInSpatialStructure", false, 946, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelSequence_type = new entity("IfcRelSequence", false, 947, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelServicesBuildings_type = new entity("IfcRelServicesBuildings", false, 948, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelSpaceBoundary_type = new entity("IfcRelSpaceBoundary", false, 949, IFC4X3_RC3_IfcRelConnects_type); - IFC4X3_RC3_IfcRelSpaceBoundary1stLevel_type = new entity("IfcRelSpaceBoundary1stLevel", false, 950, IFC4X3_RC3_IfcRelSpaceBoundary_type); - IFC4X3_RC3_IfcRelSpaceBoundary2ndLevel_type = new entity("IfcRelSpaceBoundary2ndLevel", false, 951, IFC4X3_RC3_IfcRelSpaceBoundary1stLevel_type); - IFC4X3_RC3_IfcRelVoidsElement_type = new entity("IfcRelVoidsElement", false, 952, IFC4X3_RC3_IfcRelDecomposes_type); - IFC4X3_RC3_IfcReparametrisedCompositeCurveSegment_type = new entity("IfcReparametrisedCompositeCurveSegment", false, 953, IFC4X3_RC3_IfcCompositeCurveSegment_type); - IFC4X3_RC3_IfcResource_type = new entity("IfcResource", true, 958, IFC4X3_RC3_IfcObject_type); - IFC4X3_RC3_IfcRevolvedAreaSolid_type = new entity("IfcRevolvedAreaSolid", false, 965, IFC4X3_RC3_IfcSweptAreaSolid_type); - IFC4X3_RC3_IfcRevolvedAreaSolidTapered_type = new entity("IfcRevolvedAreaSolidTapered", false, 966, IFC4X3_RC3_IfcRevolvedAreaSolid_type); - IFC4X3_RC3_IfcRightCircularCone_type = new entity("IfcRightCircularCone", false, 967, IFC4X3_RC3_IfcCsgPrimitive3D_type); - IFC4X3_RC3_IfcRightCircularCylinder_type = new entity("IfcRightCircularCylinder", false, 968, IFC4X3_RC3_IfcCsgPrimitive3D_type); - IFC4X3_RC3_IfcSectionedSolid_type = new entity("IfcSectionedSolid", true, 989, IFC4X3_RC3_IfcSolidModel_type); - IFC4X3_RC3_IfcSectionedSolidHorizontal_type = new entity("IfcSectionedSolidHorizontal", false, 990, IFC4X3_RC3_IfcSectionedSolid_type); - IFC4X3_RC3_IfcSectionedSurface_type = new entity("IfcSectionedSurface", false, 992, IFC4X3_RC3_IfcSurface_type); - IFC4X3_RC3_IfcSimplePropertyTemplate_type = new entity("IfcSimplePropertyTemplate", false, 1020, IFC4X3_RC3_IfcPropertyTemplate_type); - IFC4X3_RC3_IfcSpatialElement_type = new entity("IfcSpatialElement", true, 1053, IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcSpatialElementType_type = new entity("IfcSpatialElementType", true, 1054, IFC4X3_RC3_IfcTypeProduct_type); - IFC4X3_RC3_IfcSpatialStructureElement_type = new entity("IfcSpatialStructureElement", true, 1056, IFC4X3_RC3_IfcSpatialElement_type); - IFC4X3_RC3_IfcSpatialStructureElementType_type = new entity("IfcSpatialStructureElementType", true, 1057, IFC4X3_RC3_IfcSpatialElementType_type); - IFC4X3_RC3_IfcSpatialZone_type = new entity("IfcSpatialZone", false, 1058, IFC4X3_RC3_IfcSpatialElement_type); - IFC4X3_RC3_IfcSpatialZoneType_type = new entity("IfcSpatialZoneType", false, 1059, IFC4X3_RC3_IfcSpatialElementType_type); - IFC4X3_RC3_IfcSphere_type = new entity("IfcSphere", false, 1065, IFC4X3_RC3_IfcCsgPrimitive3D_type); - IFC4X3_RC3_IfcSphericalSurface_type = new entity("IfcSphericalSurface", false, 1066, IFC4X3_RC3_IfcElementarySurface_type); - IFC4X3_RC3_IfcSpiral_type = new entity("IfcSpiral", true, 1067, IFC4X3_RC3_IfcCurve_type); - IFC4X3_RC3_IfcStructuralActivity_type = new entity("IfcStructuralActivity", true, 1079, IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcStructuralItem_type = new entity("IfcStructuralItem", true, 1091, IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcStructuralMember_type = new entity("IfcStructuralMember", true, 1106, IFC4X3_RC3_IfcStructuralItem_type); - IFC4X3_RC3_IfcStructuralReaction_type = new entity("IfcStructuralReaction", true, 1111, IFC4X3_RC3_IfcStructuralActivity_type); - IFC4X3_RC3_IfcStructuralSurfaceMember_type = new entity("IfcStructuralSurfaceMember", false, 1116, IFC4X3_RC3_IfcStructuralMember_type); - IFC4X3_RC3_IfcStructuralSurfaceMemberVarying_type = new entity("IfcStructuralSurfaceMemberVarying", false, 1118, IFC4X3_RC3_IfcStructuralSurfaceMember_type); - IFC4X3_RC3_IfcStructuralSurfaceReaction_type = new entity("IfcStructuralSurfaceReaction", false, 1119, IFC4X3_RC3_IfcStructuralReaction_type); - IFC4X3_RC3_IfcSubContractResourceType_type = new entity("IfcSubContractResourceType", false, 1124, IFC4X3_RC3_IfcConstructionResourceType_type); - IFC4X3_RC3_IfcSurfaceCurve_type = new entity("IfcSurfaceCurve", false, 1128, IFC4X3_RC3_IfcCurve_type); - IFC4X3_RC3_IfcSurfaceCurveSweptAreaSolid_type = new entity("IfcSurfaceCurveSweptAreaSolid", false, 1129, IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type); - IFC4X3_RC3_IfcSurfaceOfLinearExtrusion_type = new entity("IfcSurfaceOfLinearExtrusion", false, 1132, IFC4X3_RC3_IfcSweptSurface_type); - IFC4X3_RC3_IfcSurfaceOfRevolution_type = new entity("IfcSurfaceOfRevolution", false, 1133, IFC4X3_RC3_IfcSweptSurface_type); - IFC4X3_RC3_IfcSystemFurnitureElementType_type = new entity("IfcSystemFurnitureElementType", false, 1154, IFC4X3_RC3_IfcFurnishingElementType_type); - IFC4X3_RC3_IfcTask_type = new entity("IfcTask", false, 1162, IFC4X3_RC3_IfcProcess_type); - IFC4X3_RC3_IfcTaskType_type = new entity("IfcTaskType", false, 1166, IFC4X3_RC3_IfcTypeProcess_type); - IFC4X3_RC3_IfcTessellatedFaceSet_type = new entity("IfcTessellatedFaceSet", true, 1180, IFC4X3_RC3_IfcTessellatedItem_type); - IFC4X3_RC3_IfcThirdOrderPolynomialSpiral_type = new entity("IfcThirdOrderPolynomialSpiral", false, 1206, IFC4X3_RC3_IfcSpiral_type); - IFC4X3_RC3_IfcToroidalSurface_type = new entity("IfcToroidalSurface", false, 1217, IFC4X3_RC3_IfcElementarySurface_type); - IFC4X3_RC3_IfcTransportElementType_type = new entity("IfcTransportElementType", false, 1230, IFC4X3_RC3_IfcElementType_type); - IFC4X3_RC3_IfcTriangulatedFaceSet_type = new entity("IfcTriangulatedFaceSet", false, 1233, IFC4X3_RC3_IfcTessellatedFaceSet_type); - IFC4X3_RC3_IfcTriangulatedIrregularNetwork_type = new entity("IfcTriangulatedIrregularNetwork", false, 1234, IFC4X3_RC3_IfcTriangulatedFaceSet_type); - IFC4X3_RC3_IfcWindowLiningProperties_type = new entity("IfcWindowLiningProperties", false, 1294, IFC4X3_RC3_IfcPreDefinedPropertySet_type); - IFC4X3_RC3_IfcWindowPanelProperties_type = new entity("IfcWindowPanelProperties", false, 1297, IFC4X3_RC3_IfcPreDefinedPropertySet_type); + IFC4X3_RC3_IfcDirectrixDistanceSweptAreaSolid_type = new entity("IfcDirectrixDistanceSweptAreaSolid", true, 311, IFC4X3_RC3_IfcSweptAreaSolid_type); + IFC4X3_RC3_IfcDoorStyle_type = new entity("IfcDoorStyle", false, 344, IFC4X3_RC3_IfcTypeProduct_type); + IFC4X3_RC3_IfcEdgeLoop_type = new entity("IfcEdgeLoop", false, 371, IFC4X3_RC3_IfcLoop_type); + IFC4X3_RC3_IfcElementQuantity_type = new entity("IfcElementQuantity", false, 407, IFC4X3_RC3_IfcQuantitySet_type); + IFC4X3_RC3_IfcElementType_type = new entity("IfcElementType", true, 408, IFC4X3_RC3_IfcTypeProduct_type); + IFC4X3_RC3_IfcElementarySurface_type = new entity("IfcElementarySurface", true, 400, IFC4X3_RC3_IfcSurface_type); + IFC4X3_RC3_IfcEllipseProfileDef_type = new entity("IfcEllipseProfileDef", false, 410, IFC4X3_RC3_IfcParameterizedProfileDef_type); + IFC4X3_RC3_IfcEventType_type = new entity("IfcEventType", false, 426, IFC4X3_RC3_IfcTypeProcess_type); + IFC4X3_RC3_IfcExtrudedAreaSolid_type = new entity("IfcExtrudedAreaSolid", false, 438, IFC4X3_RC3_IfcSweptAreaSolid_type); + IFC4X3_RC3_IfcExtrudedAreaSolidTapered_type = new entity("IfcExtrudedAreaSolidTapered", false, 439, IFC4X3_RC3_IfcExtrudedAreaSolid_type); + IFC4X3_RC3_IfcFaceBasedSurfaceModel_type = new entity("IfcFaceBasedSurfaceModel", false, 441, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcFillAreaStyleHatching_type = new entity("IfcFillAreaStyleHatching", false, 463, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcFillAreaStyleTiles_type = new entity("IfcFillAreaStyleTiles", false, 464, IFC4X3_RC3_IfcGeometricRepresentationItem_type); + IFC4X3_RC3_IfcFixedReferenceSweptAreaSolid_type = new entity("IfcFixedReferenceSweptAreaSolid", false, 472, IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type); + IFC4X3_RC3_IfcFurnishingElementType_type = new entity("IfcFurnishingElementType", false, 503, IFC4X3_RC3_IfcElementType_type); + IFC4X3_RC3_IfcFurnitureType_type = new entity("IfcFurnitureType", false, 505, IFC4X3_RC3_IfcFurnishingElementType_type); + IFC4X3_RC3_IfcGeographicElementType_type = new entity("IfcGeographicElementType", false, 508, IFC4X3_RC3_IfcElementType_type); + IFC4X3_RC3_IfcGeometricCurveSet_type = new entity("IfcGeometricCurveSet", false, 510, IFC4X3_RC3_IfcGeometricSet_type); + IFC4X3_RC3_IfcIShapeProfileDef_type = new entity("IfcIShapeProfileDef", false, 569, IFC4X3_RC3_IfcParameterizedProfileDef_type); + IFC4X3_RC3_IfcInclinedReferenceSweptAreaSolid_type = new entity("IfcInclinedReferenceSweptAreaSolid", false, 548, IFC4X3_RC3_IfcDirectrixDistanceSweptAreaSolid_type); + IFC4X3_RC3_IfcIndexedPolygonalFace_type = new entity("IfcIndexedPolygonalFace", false, 551, IFC4X3_RC3_IfcTessellatedItem_type); + IFC4X3_RC3_IfcIndexedPolygonalFaceWithVoids_type = new entity("IfcIndexedPolygonalFaceWithVoids", false, 552, IFC4X3_RC3_IfcIndexedPolygonalFace_type); + IFC4X3_RC3_IfcLShapeProfileDef_type = new entity("IfcLShapeProfileDef", false, 624, IFC4X3_RC3_IfcParameterizedProfileDef_type); + IFC4X3_RC3_IfcLaborResourceType_type = new entity("IfcLaborResourceType", false, 580, IFC4X3_RC3_IfcConstructionResourceType_type); + IFC4X3_RC3_IfcLine_type = new entity("IfcLine", false, 607, IFC4X3_RC3_IfcCurve_type); + IFC4X3_RC3_IfcManifoldSolidBrep_type = new entity("IfcManifoldSolidBrep", true, 630, IFC4X3_RC3_IfcSolidModel_type); + IFC4X3_RC3_IfcObject_type = new entity("IfcObject", true, 704, IFC4X3_RC3_IfcObjectDefinition_type); + IFC4X3_RC3_IfcOffsetCurve_type = new entity("IfcOffsetCurve", true, 713, IFC4X3_RC3_IfcCurve_type); + IFC4X3_RC3_IfcOffsetCurve2D_type = new entity("IfcOffsetCurve2D", false, 714, IFC4X3_RC3_IfcOffsetCurve_type); + IFC4X3_RC3_IfcOffsetCurve3D_type = new entity("IfcOffsetCurve3D", false, 715, IFC4X3_RC3_IfcOffsetCurve_type); + IFC4X3_RC3_IfcOffsetCurveByDistances_type = new entity("IfcOffsetCurveByDistances", false, 716, IFC4X3_RC3_IfcOffsetCurve_type); + IFC4X3_RC3_IfcPcurve_type = new entity("IfcPcurve", false, 736, IFC4X3_RC3_IfcCurve_type); + IFC4X3_RC3_IfcPlanarBox_type = new entity("IfcPlanarBox", false, 762, IFC4X3_RC3_IfcPlanarExtent_type); + IFC4X3_RC3_IfcPlane_type = new entity("IfcPlane", false, 765, IFC4X3_RC3_IfcElementarySurface_type); + IFC4X3_RC3_IfcPolynomialCurve_type = new entity("IfcPolynomialCurve", false, 781, IFC4X3_RC3_IfcCurve_type); + IFC4X3_RC3_IfcPreDefinedColour_type = new entity("IfcPreDefinedColour", true, 790, IFC4X3_RC3_IfcPreDefinedItem_type); + IFC4X3_RC3_IfcPreDefinedCurveFont_type = new entity("IfcPreDefinedCurveFont", true, 791, IFC4X3_RC3_IfcPreDefinedItem_type); + IFC4X3_RC3_IfcPreDefinedPropertySet_type = new entity("IfcPreDefinedPropertySet", true, 794, IFC4X3_RC3_IfcPropertySetDefinition_type); + IFC4X3_RC3_IfcProcedureType_type = new entity("IfcProcedureType", false, 804, IFC4X3_RC3_IfcTypeProcess_type); + IFC4X3_RC3_IfcProcess_type = new entity("IfcProcess", true, 806, IFC4X3_RC3_IfcObject_type); + IFC4X3_RC3_IfcProduct_type = new entity("IfcProduct", true, 808, IFC4X3_RC3_IfcObject_type); + IFC4X3_RC3_IfcProject_type = new entity("IfcProject", false, 816, IFC4X3_RC3_IfcContext_type); + IFC4X3_RC3_IfcProjectLibrary_type = new entity("IfcProjectLibrary", false, 821, IFC4X3_RC3_IfcContext_type); + IFC4X3_RC3_IfcPropertyBoundedValue_type = new entity("IfcPropertyBoundedValue", false, 826, IFC4X3_RC3_IfcSimpleProperty_type); + IFC4X3_RC3_IfcPropertyEnumeratedValue_type = new entity("IfcPropertyEnumeratedValue", false, 829, IFC4X3_RC3_IfcSimpleProperty_type); + IFC4X3_RC3_IfcPropertyListValue_type = new entity("IfcPropertyListValue", false, 831, IFC4X3_RC3_IfcSimpleProperty_type); + IFC4X3_RC3_IfcPropertyReferenceValue_type = new entity("IfcPropertyReferenceValue", false, 832, IFC4X3_RC3_IfcSimpleProperty_type); + IFC4X3_RC3_IfcPropertySet_type = new entity("IfcPropertySet", false, 833, IFC4X3_RC3_IfcPropertySetDefinition_type); + IFC4X3_RC3_IfcPropertySetTemplate_type = new entity("IfcPropertySetTemplate", false, 837, IFC4X3_RC3_IfcPropertyTemplateDefinition_type); + IFC4X3_RC3_IfcPropertySingleValue_type = new entity("IfcPropertySingleValue", false, 839, IFC4X3_RC3_IfcSimpleProperty_type); + IFC4X3_RC3_IfcPropertyTableValue_type = new entity("IfcPropertyTableValue", false, 840, IFC4X3_RC3_IfcSimpleProperty_type); + IFC4X3_RC3_IfcPropertyTemplate_type = new entity("IfcPropertyTemplate", true, 841, IFC4X3_RC3_IfcPropertyTemplateDefinition_type); + IFC4X3_RC3_IfcProxy_type = new entity("IfcProxy", false, 849, IFC4X3_RC3_IfcProduct_type); + IFC4X3_RC3_IfcRectangleHollowProfileDef_type = new entity("IfcRectangleHollowProfileDef", false, 880, IFC4X3_RC3_IfcRectangleProfileDef_type); + IFC4X3_RC3_IfcRectangularPyramid_type = new entity("IfcRectangularPyramid", false, 882, IFC4X3_RC3_IfcCsgPrimitive3D_type); + IFC4X3_RC3_IfcRectangularTrimmedSurface_type = new entity("IfcRectangularTrimmedSurface", false, 883, IFC4X3_RC3_IfcBoundedSurface_type); + IFC4X3_RC3_IfcReinforcementDefinitionProperties_type = new entity("IfcReinforcementDefinitionProperties", false, 894, IFC4X3_RC3_IfcPreDefinedPropertySet_type); + IFC4X3_RC3_IfcRelAssigns_type = new entity("IfcRelAssigns", true, 906, IFC4X3_RC3_IfcRelationship_type); + IFC4X3_RC3_IfcRelAssignsToActor_type = new entity("IfcRelAssignsToActor", false, 907, IFC4X3_RC3_IfcRelAssigns_type); + IFC4X3_RC3_IfcRelAssignsToControl_type = new entity("IfcRelAssignsToControl", false, 908, IFC4X3_RC3_IfcRelAssigns_type); + IFC4X3_RC3_IfcRelAssignsToGroup_type = new entity("IfcRelAssignsToGroup", false, 909, IFC4X3_RC3_IfcRelAssigns_type); + IFC4X3_RC3_IfcRelAssignsToGroupByFactor_type = new entity("IfcRelAssignsToGroupByFactor", false, 910, IFC4X3_RC3_IfcRelAssignsToGroup_type); + IFC4X3_RC3_IfcRelAssignsToProcess_type = new entity("IfcRelAssignsToProcess", false, 911, IFC4X3_RC3_IfcRelAssigns_type); + IFC4X3_RC3_IfcRelAssignsToProduct_type = new entity("IfcRelAssignsToProduct", false, 912, IFC4X3_RC3_IfcRelAssigns_type); + IFC4X3_RC3_IfcRelAssignsToResource_type = new entity("IfcRelAssignsToResource", false, 913, IFC4X3_RC3_IfcRelAssigns_type); + IFC4X3_RC3_IfcRelAssociates_type = new entity("IfcRelAssociates", true, 914, IFC4X3_RC3_IfcRelationship_type); + IFC4X3_RC3_IfcRelAssociatesApproval_type = new entity("IfcRelAssociatesApproval", false, 915, IFC4X3_RC3_IfcRelAssociates_type); + IFC4X3_RC3_IfcRelAssociatesClassification_type = new entity("IfcRelAssociatesClassification", false, 916, IFC4X3_RC3_IfcRelAssociates_type); + IFC4X3_RC3_IfcRelAssociatesConstraint_type = new entity("IfcRelAssociatesConstraint", false, 917, IFC4X3_RC3_IfcRelAssociates_type); + IFC4X3_RC3_IfcRelAssociatesDocument_type = new entity("IfcRelAssociatesDocument", false, 918, IFC4X3_RC3_IfcRelAssociates_type); + IFC4X3_RC3_IfcRelAssociatesLibrary_type = new entity("IfcRelAssociatesLibrary", false, 919, IFC4X3_RC3_IfcRelAssociates_type); + IFC4X3_RC3_IfcRelAssociatesMaterial_type = new entity("IfcRelAssociatesMaterial", false, 920, IFC4X3_RC3_IfcRelAssociates_type); + IFC4X3_RC3_IfcRelAssociatesProfileDef_type = new entity("IfcRelAssociatesProfileDef", false, 921, IFC4X3_RC3_IfcRelAssociates_type); + IFC4X3_RC3_IfcRelConnects_type = new entity("IfcRelConnects", true, 923, IFC4X3_RC3_IfcRelationship_type); + IFC4X3_RC3_IfcRelConnectsElements_type = new entity("IfcRelConnectsElements", false, 924, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelConnectsPathElements_type = new entity("IfcRelConnectsPathElements", false, 925, IFC4X3_RC3_IfcRelConnectsElements_type); + IFC4X3_RC3_IfcRelConnectsPortToElement_type = new entity("IfcRelConnectsPortToElement", false, 927, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelConnectsPorts_type = new entity("IfcRelConnectsPorts", false, 926, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelConnectsStructuralActivity_type = new entity("IfcRelConnectsStructuralActivity", false, 928, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelConnectsStructuralMember_type = new entity("IfcRelConnectsStructuralMember", false, 929, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelConnectsWithEccentricity_type = new entity("IfcRelConnectsWithEccentricity", false, 930, IFC4X3_RC3_IfcRelConnectsStructuralMember_type); + IFC4X3_RC3_IfcRelConnectsWithRealizingElements_type = new entity("IfcRelConnectsWithRealizingElements", false, 931, IFC4X3_RC3_IfcRelConnectsElements_type); + IFC4X3_RC3_IfcRelContainedInSpatialStructure_type = new entity("IfcRelContainedInSpatialStructure", false, 932, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelCoversBldgElements_type = new entity("IfcRelCoversBldgElements", false, 933, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelCoversSpaces_type = new entity("IfcRelCoversSpaces", false, 934, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelDeclares_type = new entity("IfcRelDeclares", false, 935, IFC4X3_RC3_IfcRelationship_type); + IFC4X3_RC3_IfcRelDecomposes_type = new entity("IfcRelDecomposes", true, 936, IFC4X3_RC3_IfcRelationship_type); + IFC4X3_RC3_IfcRelDefines_type = new entity("IfcRelDefines", true, 937, IFC4X3_RC3_IfcRelationship_type); + IFC4X3_RC3_IfcRelDefinesByObject_type = new entity("IfcRelDefinesByObject", false, 938, IFC4X3_RC3_IfcRelDefines_type); + IFC4X3_RC3_IfcRelDefinesByProperties_type = new entity("IfcRelDefinesByProperties", false, 939, IFC4X3_RC3_IfcRelDefines_type); + IFC4X3_RC3_IfcRelDefinesByTemplate_type = new entity("IfcRelDefinesByTemplate", false, 940, IFC4X3_RC3_IfcRelDefines_type); + IFC4X3_RC3_IfcRelDefinesByType_type = new entity("IfcRelDefinesByType", false, 941, IFC4X3_RC3_IfcRelDefines_type); + IFC4X3_RC3_IfcRelFillsElement_type = new entity("IfcRelFillsElement", false, 942, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelFlowControlElements_type = new entity("IfcRelFlowControlElements", false, 943, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelInterferesElements_type = new entity("IfcRelInterferesElements", false, 944, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelNests_type = new entity("IfcRelNests", false, 945, IFC4X3_RC3_IfcRelDecomposes_type); + IFC4X3_RC3_IfcRelPositions_type = new entity("IfcRelPositions", false, 946, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelProjectsElement_type = new entity("IfcRelProjectsElement", false, 947, IFC4X3_RC3_IfcRelDecomposes_type); + IFC4X3_RC3_IfcRelReferencedInSpatialStructure_type = new entity("IfcRelReferencedInSpatialStructure", false, 948, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelSequence_type = new entity("IfcRelSequence", false, 949, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelServicesBuildings_type = new entity("IfcRelServicesBuildings", false, 950, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelSpaceBoundary_type = new entity("IfcRelSpaceBoundary", false, 951, IFC4X3_RC3_IfcRelConnects_type); + IFC4X3_RC3_IfcRelSpaceBoundary1stLevel_type = new entity("IfcRelSpaceBoundary1stLevel", false, 952, IFC4X3_RC3_IfcRelSpaceBoundary_type); + IFC4X3_RC3_IfcRelSpaceBoundary2ndLevel_type = new entity("IfcRelSpaceBoundary2ndLevel", false, 953, IFC4X3_RC3_IfcRelSpaceBoundary1stLevel_type); + IFC4X3_RC3_IfcRelVoidsElement_type = new entity("IfcRelVoidsElement", false, 954, IFC4X3_RC3_IfcRelDecomposes_type); + IFC4X3_RC3_IfcReparametrisedCompositeCurveSegment_type = new entity("IfcReparametrisedCompositeCurveSegment", false, 955, IFC4X3_RC3_IfcCompositeCurveSegment_type); + IFC4X3_RC3_IfcResource_type = new entity("IfcResource", true, 960, IFC4X3_RC3_IfcObject_type); + IFC4X3_RC3_IfcRevolvedAreaSolid_type = new entity("IfcRevolvedAreaSolid", false, 967, IFC4X3_RC3_IfcSweptAreaSolid_type); + IFC4X3_RC3_IfcRevolvedAreaSolidTapered_type = new entity("IfcRevolvedAreaSolidTapered", false, 968, IFC4X3_RC3_IfcRevolvedAreaSolid_type); + IFC4X3_RC3_IfcRightCircularCone_type = new entity("IfcRightCircularCone", false, 969, IFC4X3_RC3_IfcCsgPrimitive3D_type); + IFC4X3_RC3_IfcRightCircularCylinder_type = new entity("IfcRightCircularCylinder", false, 970, IFC4X3_RC3_IfcCsgPrimitive3D_type); + IFC4X3_RC3_IfcSectionedSolid_type = new entity("IfcSectionedSolid", true, 991, IFC4X3_RC3_IfcSolidModel_type); + IFC4X3_RC3_IfcSectionedSolidHorizontal_type = new entity("IfcSectionedSolidHorizontal", false, 992, IFC4X3_RC3_IfcSectionedSolid_type); + IFC4X3_RC3_IfcSectionedSurface_type = new entity("IfcSectionedSurface", false, 994, IFC4X3_RC3_IfcSurface_type); + IFC4X3_RC3_IfcSimplePropertyTemplate_type = new entity("IfcSimplePropertyTemplate", false, 1022, IFC4X3_RC3_IfcPropertyTemplate_type); + IFC4X3_RC3_IfcSpatialElement_type = new entity("IfcSpatialElement", true, 1055, IFC4X3_RC3_IfcProduct_type); + IFC4X3_RC3_IfcSpatialElementType_type = new entity("IfcSpatialElementType", true, 1056, IFC4X3_RC3_IfcTypeProduct_type); + IFC4X3_RC3_IfcSpatialStructureElement_type = new entity("IfcSpatialStructureElement", true, 1058, IFC4X3_RC3_IfcSpatialElement_type); + IFC4X3_RC3_IfcSpatialStructureElementType_type = new entity("IfcSpatialStructureElementType", true, 1059, IFC4X3_RC3_IfcSpatialElementType_type); + IFC4X3_RC3_IfcSpatialZone_type = new entity("IfcSpatialZone", false, 1060, IFC4X3_RC3_IfcSpatialElement_type); + IFC4X3_RC3_IfcSpatialZoneType_type = new entity("IfcSpatialZoneType", false, 1061, IFC4X3_RC3_IfcSpatialElementType_type); + IFC4X3_RC3_IfcSphere_type = new entity("IfcSphere", false, 1067, IFC4X3_RC3_IfcCsgPrimitive3D_type); + IFC4X3_RC3_IfcSphericalSurface_type = new entity("IfcSphericalSurface", false, 1068, IFC4X3_RC3_IfcElementarySurface_type); + IFC4X3_RC3_IfcSpiral_type = new entity("IfcSpiral", true, 1069, IFC4X3_RC3_IfcCurve_type); + IFC4X3_RC3_IfcStructuralActivity_type = new entity("IfcStructuralActivity", true, 1081, IFC4X3_RC3_IfcProduct_type); + IFC4X3_RC3_IfcStructuralItem_type = new entity("IfcStructuralItem", true, 1093, IFC4X3_RC3_IfcProduct_type); + IFC4X3_RC3_IfcStructuralMember_type = new entity("IfcStructuralMember", true, 1108, IFC4X3_RC3_IfcStructuralItem_type); + IFC4X3_RC3_IfcStructuralReaction_type = new entity("IfcStructuralReaction", true, 1113, IFC4X3_RC3_IfcStructuralActivity_type); + IFC4X3_RC3_IfcStructuralSurfaceMember_type = new entity("IfcStructuralSurfaceMember", false, 1118, IFC4X3_RC3_IfcStructuralMember_type); + IFC4X3_RC3_IfcStructuralSurfaceMemberVarying_type = new entity("IfcStructuralSurfaceMemberVarying", false, 1120, IFC4X3_RC3_IfcStructuralSurfaceMember_type); + IFC4X3_RC3_IfcStructuralSurfaceReaction_type = new entity("IfcStructuralSurfaceReaction", false, 1121, IFC4X3_RC3_IfcStructuralReaction_type); + IFC4X3_RC3_IfcSubContractResourceType_type = new entity("IfcSubContractResourceType", false, 1126, IFC4X3_RC3_IfcConstructionResourceType_type); + IFC4X3_RC3_IfcSurfaceCurve_type = new entity("IfcSurfaceCurve", false, 1130, IFC4X3_RC3_IfcCurve_type); + IFC4X3_RC3_IfcSurfaceCurveSweptAreaSolid_type = new entity("IfcSurfaceCurveSweptAreaSolid", false, 1131, IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type); + IFC4X3_RC3_IfcSurfaceOfLinearExtrusion_type = new entity("IfcSurfaceOfLinearExtrusion", false, 1134, IFC4X3_RC3_IfcSweptSurface_type); + IFC4X3_RC3_IfcSurfaceOfRevolution_type = new entity("IfcSurfaceOfRevolution", false, 1135, IFC4X3_RC3_IfcSweptSurface_type); + IFC4X3_RC3_IfcSystemFurnitureElementType_type = new entity("IfcSystemFurnitureElementType", false, 1156, IFC4X3_RC3_IfcFurnishingElementType_type); + IFC4X3_RC3_IfcTask_type = new entity("IfcTask", false, 1164, IFC4X3_RC3_IfcProcess_type); + IFC4X3_RC3_IfcTaskType_type = new entity("IfcTaskType", false, 1168, IFC4X3_RC3_IfcTypeProcess_type); + IFC4X3_RC3_IfcTessellatedFaceSet_type = new entity("IfcTessellatedFaceSet", true, 1182, IFC4X3_RC3_IfcTessellatedItem_type); + IFC4X3_RC3_IfcThirdOrderPolynomialSpiral_type = new entity("IfcThirdOrderPolynomialSpiral", false, 1208, IFC4X3_RC3_IfcSpiral_type); + IFC4X3_RC3_IfcToroidalSurface_type = new entity("IfcToroidalSurface", false, 1219, IFC4X3_RC3_IfcElementarySurface_type); + IFC4X3_RC3_IfcTransportElementType_type = new entity("IfcTransportElementType", false, 1232, IFC4X3_RC3_IfcElementType_type); + IFC4X3_RC3_IfcTriangulatedFaceSet_type = new entity("IfcTriangulatedFaceSet", false, 1235, IFC4X3_RC3_IfcTessellatedFaceSet_type); + IFC4X3_RC3_IfcTriangulatedIrregularNetwork_type = new entity("IfcTriangulatedIrregularNetwork", false, 1236, IFC4X3_RC3_IfcTriangulatedFaceSet_type); + IFC4X3_RC3_IfcWindowLiningProperties_type = new entity("IfcWindowLiningProperties", false, 1296, IFC4X3_RC3_IfcPreDefinedPropertySet_type); + IFC4X3_RC3_IfcWindowPanelProperties_type = new entity("IfcWindowPanelProperties", false, 1299, IFC4X3_RC3_IfcPreDefinedPropertySet_type); { std::vector items; items.reserve(3); items.push_back(IFC4X3_RC3_IfcMeasureWithUnit_type); @@ -6685,20 +6722,20 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcExternallyDefinedHatchStyle_type); items.push_back(IFC4X3_RC3_IfcFillAreaStyleHatching_type); items.push_back(IFC4X3_RC3_IfcFillAreaStyleTiles_type); - IFC4X3_RC3_IfcFillStyleSelect_type = new select_type("IfcFillStyleSelect", 464, items); + IFC4X3_RC3_IfcFillStyleSelect_type = new select_type("IfcFillStyleSelect", 465, items); } { std::vector items; items.reserve(3); items.push_back(IFC4X3_RC3_IfcCurve_type); items.push_back(IFC4X3_RC3_IfcPoint_type); items.push_back(IFC4X3_RC3_IfcSurface_type); - IFC4X3_RC3_IfcGeometricSetSelect_type = new select_type("IfcGeometricSetSelect", 515, items); + IFC4X3_RC3_IfcGeometricSetSelect_type = new select_type("IfcGeometricSetSelect", 516, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcDirection_type); items.push_back(IFC4X3_RC3_IfcVirtualGridIntersection_type); - IFC4X3_RC3_IfcGridPlacementDirectionSelect_type = new select_type("IfcGridPlacementDirectionSelect", 527, items); + IFC4X3_RC3_IfcGridPlacementDirectionSelect_type = new select_type("IfcGridPlacementDirectionSelect", 528, items); } { std::vector items; items.reserve(6); @@ -6708,62 +6745,62 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { items.push_back(IFC4X3_RC3_IfcTable_type); items.push_back(IFC4X3_RC3_IfcTimeSeries_type); items.push_back(IFC4X3_RC3_IfcValue_type); - IFC4X3_RC3_IfcMetricValueSelect_type = new select_type("IfcMetricValueSelect", 672, items); + IFC4X3_RC3_IfcMetricValueSelect_type = new select_type("IfcMetricValueSelect", 673, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcProcess_type); items.push_back(IFC4X3_RC3_IfcTypeProcess_type); - IFC4X3_RC3_IfcProcessSelect_type = new select_type("IfcProcessSelect", 805, items); + IFC4X3_RC3_IfcProcessSelect_type = new select_type("IfcProcessSelect", 807, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcProduct_type); items.push_back(IFC4X3_RC3_IfcTypeProduct_type); - IFC4X3_RC3_IfcProductSelect_type = new select_type("IfcProductSelect", 810, items); + IFC4X3_RC3_IfcProductSelect_type = new select_type("IfcProductSelect", 812, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcPropertySetDefinition_type); items.push_back(IFC4X3_RC3_IfcPropertySetDefinitionSet_type); - IFC4X3_RC3_IfcPropertySetDefinitionSelect_type = new select_type("IfcPropertySetDefinitionSelect", 833, items); + IFC4X3_RC3_IfcPropertySetDefinitionSelect_type = new select_type("IfcPropertySetDefinitionSelect", 835, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcResource_type); items.push_back(IFC4X3_RC3_IfcTypeResource_type); - IFC4X3_RC3_IfcResourceSelect_type = new select_type("IfcResourceSelect", 963, items); + IFC4X3_RC3_IfcResourceSelect_type = new select_type("IfcResourceSelect", 965, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcClosedShell_type); items.push_back(IFC4X3_RC3_IfcOpenShell_type); - IFC4X3_RC3_IfcShell_type = new select_type("IfcShell", 1011, items); + IFC4X3_RC3_IfcShell_type = new select_type("IfcShell", 1013, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcClosedShell_type); items.push_back(IFC4X3_RC3_IfcSolidModel_type); - IFC4X3_RC3_IfcSolidOrShell_type = new select_type("IfcSolidOrShell", 1040, items); + IFC4X3_RC3_IfcSolidOrShell_type = new select_type("IfcSolidOrShell", 1042, items); } { std::vector items; items.reserve(3); items.push_back(IFC4X3_RC3_IfcFaceBasedSurfaceModel_type); items.push_back(IFC4X3_RC3_IfcFaceSurface_type); items.push_back(IFC4X3_RC3_IfcSurface_type); - IFC4X3_RC3_IfcSurfaceOrFaceSurface_type = new select_type("IfcSurfaceOrFaceSurface", 1134, items); + IFC4X3_RC3_IfcSurfaceOrFaceSurface_type = new select_type("IfcSurfaceOrFaceSurface", 1136, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcCartesianPoint_type); items.push_back(IFC4X3_RC3_IfcParameterValue_type); - IFC4X3_RC3_IfcTrimmingSelect_type = new select_type("IfcTrimmingSelect", 1237, items); + IFC4X3_RC3_IfcTrimmingSelect_type = new select_type("IfcTrimmingSelect", 1239, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcDirection_type); items.push_back(IFC4X3_RC3_IfcVector_type); - IFC4X3_RC3_IfcVectorOrDirection_type = new select_type("IfcVectorOrDirection", 1263, items); + IFC4X3_RC3_IfcVectorOrDirection_type = new select_type("IfcVectorOrDirection", 1265, items); } IFC4X3_RC3_IfcActor_type = new entity("IfcActor", false, 6, IFC4X3_RC3_IfcObject_type); IFC4X3_RC3_IfcAdvancedBrep_type = new entity("IfcAdvancedBrep", false, 14, IFC4X3_RC3_IfcManifoldSolidBrep_type); @@ -6799,180 +6836,181 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcCurtainWallType_type = new entity("IfcCurtainWallType", false, 270, IFC4X3_RC3_IfcBuiltElementType_type); IFC4X3_RC3_IfcCylindricalSurface_type = new entity("IfcCylindricalSurface", false, 287, IFC4X3_RC3_IfcElementarySurface_type); IFC4X3_RC3_IfcDeepFoundationType_type = new entity("IfcDeepFoundationType", false, 297, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcDistributionElementType_type = new entity("IfcDistributionElementType", false, 324, IFC4X3_RC3_IfcElementType_type); - IFC4X3_RC3_IfcDistributionFlowElementType_type = new entity("IfcDistributionFlowElementType", true, 326, IFC4X3_RC3_IfcDistributionElementType_type); - IFC4X3_RC3_IfcDoorLiningProperties_type = new entity("IfcDoorLiningProperties", false, 338, IFC4X3_RC3_IfcPreDefinedPropertySet_type); - IFC4X3_RC3_IfcDoorPanelProperties_type = new entity("IfcDoorPanelProperties", false, 341, IFC4X3_RC3_IfcPreDefinedPropertySet_type); - IFC4X3_RC3_IfcDoorType_type = new entity("IfcDoorType", false, 346, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcDraughtingPreDefinedColour_type = new entity("IfcDraughtingPreDefinedColour", false, 350, IFC4X3_RC3_IfcPreDefinedColour_type); - IFC4X3_RC3_IfcDraughtingPreDefinedCurveFont_type = new entity("IfcDraughtingPreDefinedCurveFont", false, 351, IFC4X3_RC3_IfcPreDefinedCurveFont_type); - IFC4X3_RC3_IfcElement_type = new entity("IfcElement", true, 398, IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcElementAssembly_type = new entity("IfcElementAssembly", false, 400, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcElementAssemblyType_type = new entity("IfcElementAssemblyType", false, 401, IFC4X3_RC3_IfcElementType_type); - IFC4X3_RC3_IfcElementComponent_type = new entity("IfcElementComponent", true, 403, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcElementComponentType_type = new entity("IfcElementComponentType", true, 404, IFC4X3_RC3_IfcElementType_type); - IFC4X3_RC3_IfcEllipse_type = new entity("IfcEllipse", false, 408, IFC4X3_RC3_IfcConic_type); - IFC4X3_RC3_IfcEnergyConversionDeviceType_type = new entity("IfcEnergyConversionDeviceType", true, 411, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcEngineType_type = new entity("IfcEngineType", false, 414, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcEvaporativeCoolerType_type = new entity("IfcEvaporativeCoolerType", false, 417, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcEvaporatorType_type = new entity("IfcEvaporatorType", false, 420, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcEvent_type = new entity("IfcEvent", false, 422, IFC4X3_RC3_IfcProcess_type); - IFC4X3_RC3_IfcExternalSpatialStructureElement_type = new entity("IfcExternalSpatialStructureElement", true, 436, IFC4X3_RC3_IfcSpatialElement_type); - IFC4X3_RC3_IfcFacetedBrep_type = new entity("IfcFacetedBrep", false, 444, IFC4X3_RC3_IfcManifoldSolidBrep_type); - IFC4X3_RC3_IfcFacetedBrepWithVoids_type = new entity("IfcFacetedBrepWithVoids", false, 445, IFC4X3_RC3_IfcFacetedBrep_type); - IFC4X3_RC3_IfcFacility_type = new entity("IfcFacility", false, 446, IFC4X3_RC3_IfcSpatialStructureElement_type); - IFC4X3_RC3_IfcFacilityPart_type = new entity("IfcFacilityPart", false, 447, IFC4X3_RC3_IfcSpatialStructureElement_type); - IFC4X3_RC3_IfcFastener_type = new entity("IfcFastener", false, 455, IFC4X3_RC3_IfcElementComponent_type); - IFC4X3_RC3_IfcFastenerType_type = new entity("IfcFastenerType", false, 456, IFC4X3_RC3_IfcElementComponentType_type); - IFC4X3_RC3_IfcFeatureElement_type = new entity("IfcFeatureElement", true, 458, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcFeatureElementAddition_type = new entity("IfcFeatureElementAddition", true, 459, IFC4X3_RC3_IfcFeatureElement_type); - IFC4X3_RC3_IfcFeatureElementSubtraction_type = new entity("IfcFeatureElementSubtraction", true, 460, IFC4X3_RC3_IfcFeatureElement_type); - IFC4X3_RC3_IfcFlowControllerType_type = new entity("IfcFlowControllerType", true, 473, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcFlowFittingType_type = new entity("IfcFlowFittingType", true, 476, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcFlowMeterType_type = new entity("IfcFlowMeterType", false, 481, IFC4X3_RC3_IfcFlowControllerType_type); - IFC4X3_RC3_IfcFlowMovingDeviceType_type = new entity("IfcFlowMovingDeviceType", true, 484, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcFlowSegmentType_type = new entity("IfcFlowSegmentType", true, 486, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcFlowStorageDeviceType_type = new entity("IfcFlowStorageDeviceType", true, 488, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcFlowTerminalType_type = new entity("IfcFlowTerminalType", true, 490, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcFlowTreatmentDeviceType_type = new entity("IfcFlowTreatmentDeviceType", true, 492, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcFootingType_type = new entity("IfcFootingType", false, 497, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcFurnishingElement_type = new entity("IfcFurnishingElement", false, 501, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcFurniture_type = new entity("IfcFurniture", false, 503, IFC4X3_RC3_IfcFurnishingElement_type); - IFC4X3_RC3_IfcGeographicElement_type = new entity("IfcGeographicElement", false, 506, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcGeotechnicalElement_type = new entity("IfcGeotechnicalElement", true, 519, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcGeotechnicalStratum_type = new entity("IfcGeotechnicalStratum", true, 520, IFC4X3_RC3_IfcGeotechnicalElement_type); - IFC4X3_RC3_IfcGradientCurve_type = new entity("IfcGradientCurve", false, 523, IFC4X3_RC3_IfcCompositeCurve_type); - IFC4X3_RC3_IfcGroup_type = new entity("IfcGroup", false, 529, IFC4X3_RC3_IfcObject_type); - IFC4X3_RC3_IfcHeatExchangerType_type = new entity("IfcHeatExchangerType", false, 533, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcHumidifierType_type = new entity("IfcHumidifierType", false, 538, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcImpactProtectionDevice_type = new entity("IfcImpactProtectionDevice", false, 543, IFC4X3_RC3_IfcElementComponent_type); - IFC4X3_RC3_IfcImpactProtectionDeviceType_type = new entity("IfcImpactProtectionDeviceType", false, 544, IFC4X3_RC3_IfcElementComponentType_type); - IFC4X3_RC3_IfcIndexedPolyCurve_type = new entity("IfcIndexedPolyCurve", false, 549, IFC4X3_RC3_IfcBoundedCurve_type); - IFC4X3_RC3_IfcInterceptorType_type = new entity("IfcInterceptorType", false, 558, IFC4X3_RC3_IfcFlowTreatmentDeviceType_type); - IFC4X3_RC3_IfcIntersectionCurve_type = new entity("IfcIntersectionCurve", false, 562, IFC4X3_RC3_IfcSurfaceCurve_type); - IFC4X3_RC3_IfcInventory_type = new entity("IfcInventory", false, 563, IFC4X3_RC3_IfcGroup_type); - IFC4X3_RC3_IfcJunctionBoxType_type = new entity("IfcJunctionBoxType", false, 571, IFC4X3_RC3_IfcFlowFittingType_type); - IFC4X3_RC3_IfcKerbType_type = new entity("IfcKerbType", false, 574, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcLaborResource_type = new entity("IfcLaborResource", false, 578, IFC4X3_RC3_IfcConstructionResource_type); - IFC4X3_RC3_IfcLampType_type = new entity("IfcLampType", false, 583, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcLightFixtureType_type = new entity("IfcLightFixtureType", false, 597, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcLinearElement_type = new entity("IfcLinearElement", true, 607, IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcLiquidTerminalType_type = new entity("IfcLiquidTerminalType", false, 616, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcMarineFacility_type = new entity("IfcMarineFacility", false, 632, IFC4X3_RC3_IfcFacility_type); - IFC4X3_RC3_IfcMechanicalFastener_type = new entity("IfcMechanicalFastener", false, 661, IFC4X3_RC3_IfcElementComponent_type); - IFC4X3_RC3_IfcMechanicalFastenerType_type = new entity("IfcMechanicalFastenerType", false, 662, IFC4X3_RC3_IfcElementComponentType_type); - IFC4X3_RC3_IfcMedicalDeviceType_type = new entity("IfcMedicalDeviceType", false, 665, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcMemberType_type = new entity("IfcMemberType", false, 669, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcMobileTelecommunicationsApplianceType_type = new entity("IfcMobileTelecommunicationsApplianceType", false, 675, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcMooringDeviceType_type = new entity("IfcMooringDeviceType", false, 691, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcMotorConnectionType_type = new entity("IfcMotorConnectionType", false, 694, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcNavigationElementType_type = new entity("IfcNavigationElementType", false, 698, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcOccupant_type = new entity("IfcOccupant", false, 710, IFC4X3_RC3_IfcActor_type); - IFC4X3_RC3_IfcOpeningElement_type = new entity("IfcOpeningElement", false, 717, IFC4X3_RC3_IfcFeatureElementSubtraction_type); - IFC4X3_RC3_IfcOpeningStandardCase_type = new entity("IfcOpeningStandardCase", false, 719, IFC4X3_RC3_IfcOpeningElement_type); - IFC4X3_RC3_IfcOutletType_type = new entity("IfcOutletType", false, 726, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcPavementType_type = new entity("IfcPavementType", false, 733, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcPerformanceHistory_type = new entity("IfcPerformanceHistory", false, 735, IFC4X3_RC3_IfcControl_type); - IFC4X3_RC3_IfcPermeableCoveringProperties_type = new entity("IfcPermeableCoveringProperties", false, 738, IFC4X3_RC3_IfcPreDefinedPropertySet_type); - IFC4X3_RC3_IfcPermit_type = new entity("IfcPermit", false, 739, IFC4X3_RC3_IfcControl_type); - IFC4X3_RC3_IfcPileType_type = new entity("IfcPileType", false, 750, IFC4X3_RC3_IfcDeepFoundationType_type); - IFC4X3_RC3_IfcPipeFittingType_type = new entity("IfcPipeFittingType", false, 753, IFC4X3_RC3_IfcFlowFittingType_type); - IFC4X3_RC3_IfcPipeSegmentType_type = new entity("IfcPipeSegmentType", false, 756, IFC4X3_RC3_IfcFlowSegmentType_type); - IFC4X3_RC3_IfcPlant_type = new entity("IfcPlant", false, 765, IFC4X3_RC3_IfcGeographicElement_type); - IFC4X3_RC3_IfcPlateType_type = new entity("IfcPlateType", false, 768, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcPolygonalFaceSet_type = new entity("IfcPolygonalFaceSet", false, 776, IFC4X3_RC3_IfcTessellatedFaceSet_type); - IFC4X3_RC3_IfcPolyline_type = new entity("IfcPolyline", false, 777, IFC4X3_RC3_IfcBoundedCurve_type); - IFC4X3_RC3_IfcPort_type = new entity("IfcPort", true, 780, IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcPositioningElement_type = new entity("IfcPositioningElement", true, 781, IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcProcedure_type = new entity("IfcProcedure", false, 801, IFC4X3_RC3_IfcProcess_type); - IFC4X3_RC3_IfcProjectOrder_type = new entity("IfcProjectOrder", false, 820, IFC4X3_RC3_IfcControl_type); - IFC4X3_RC3_IfcProjectionElement_type = new entity("IfcProjectionElement", false, 817, IFC4X3_RC3_IfcFeatureElementAddition_type); - IFC4X3_RC3_IfcProtectiveDeviceType_type = new entity("IfcProtectiveDeviceType", false, 845, IFC4X3_RC3_IfcFlowControllerType_type); - IFC4X3_RC3_IfcPumpType_type = new entity("IfcPumpType", false, 849, IFC4X3_RC3_IfcFlowMovingDeviceType_type); - IFC4X3_RC3_IfcRailType_type = new entity("IfcRailType", false, 863, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcRailingType_type = new entity("IfcRailingType", false, 861, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcRailway_type = new entity("IfcRailway", false, 865, IFC4X3_RC3_IfcFacility_type); - IFC4X3_RC3_IfcRampFlightType_type = new entity("IfcRampFlightType", false, 870, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcRampType_type = new entity("IfcRampType", false, 872, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcRationalBSplineSurfaceWithKnots_type = new entity("IfcRationalBSplineSurfaceWithKnots", false, 876, IFC4X3_RC3_IfcBSplineSurfaceWithKnots_type); - IFC4X3_RC3_IfcReferent_type = new entity("IfcReferent", false, 885, IFC4X3_RC3_IfcPositioningElement_type); - IFC4X3_RC3_IfcReinforcingElement_type = new entity("IfcReinforcingElement", true, 898, IFC4X3_RC3_IfcElementComponent_type); - IFC4X3_RC3_IfcReinforcingElementType_type = new entity("IfcReinforcingElementType", true, 899, IFC4X3_RC3_IfcElementComponentType_type); - IFC4X3_RC3_IfcReinforcingMesh_type = new entity("IfcReinforcingMesh", false, 900, IFC4X3_RC3_IfcReinforcingElement_type); - IFC4X3_RC3_IfcReinforcingMeshType_type = new entity("IfcReinforcingMeshType", false, 901, IFC4X3_RC3_IfcReinforcingElementType_type); - IFC4X3_RC3_IfcRelAggregates_type = new entity("IfcRelAggregates", false, 903, IFC4X3_RC3_IfcRelDecomposes_type); - IFC4X3_RC3_IfcRoad_type = new entity("IfcRoad", false, 969, IFC4X3_RC3_IfcFacility_type); - IFC4X3_RC3_IfcRoofType_type = new entity("IfcRoofType", false, 974, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcSanitaryTerminalType_type = new entity("IfcSanitaryTerminalType", false, 983, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcSeamCurve_type = new entity("IfcSeamCurve", false, 986, IFC4X3_RC3_IfcSurfaceCurve_type); - IFC4X3_RC3_IfcSecondOrderPolynomialSpiral_type = new entity("IfcSecondOrderPolynomialSpiral", false, 987, IFC4X3_RC3_IfcSpiral_type); - IFC4X3_RC3_IfcSegmentedReferenceCurve_type = new entity("IfcSegmentedReferenceCurve", false, 998, IFC4X3_RC3_IfcCompositeCurve_type); - IFC4X3_RC3_IfcShadingDeviceType_type = new entity("IfcShadingDeviceType", false, 1005, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcSign_type = new entity("IfcSign", false, 1013, IFC4X3_RC3_IfcElementComponent_type); - IFC4X3_RC3_IfcSignType_type = new entity("IfcSignType", false, 1017, IFC4X3_RC3_IfcElementComponentType_type); - IFC4X3_RC3_IfcSignalType_type = new entity("IfcSignalType", false, 1015, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcSine_type = new entity("IfcSine", false, 1023, IFC4X3_RC3_IfcSpiral_type); - IFC4X3_RC3_IfcSite_type = new entity("IfcSite", false, 1025, IFC4X3_RC3_IfcSpatialStructureElement_type); - IFC4X3_RC3_IfcSlabType_type = new entity("IfcSlabType", false, 1032, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcSolarDeviceType_type = new entity("IfcSolarDeviceType", false, 1036, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcSolidStratum_type = new entity("IfcSolidStratum", false, 1041, IFC4X3_RC3_IfcGeotechnicalStratum_type); - IFC4X3_RC3_IfcSpace_type = new entity("IfcSpace", false, 1046, IFC4X3_RC3_IfcSpatialStructureElement_type); - IFC4X3_RC3_IfcSpaceHeaterType_type = new entity("IfcSpaceHeaterType", false, 1049, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcSpaceType_type = new entity("IfcSpaceType", false, 1051, IFC4X3_RC3_IfcSpatialStructureElementType_type); - IFC4X3_RC3_IfcStackTerminalType_type = new entity("IfcStackTerminalType", false, 1069, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcStairFlightType_type = new entity("IfcStairFlightType", false, 1073, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcStairType_type = new entity("IfcStairType", false, 1075, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcStructuralAction_type = new entity("IfcStructuralAction", true, 1078, IFC4X3_RC3_IfcStructuralActivity_type); - IFC4X3_RC3_IfcStructuralConnection_type = new entity("IfcStructuralConnection", true, 1082, IFC4X3_RC3_IfcStructuralItem_type); - IFC4X3_RC3_IfcStructuralCurveAction_type = new entity("IfcStructuralCurveAction", false, 1084, IFC4X3_RC3_IfcStructuralAction_type); - IFC4X3_RC3_IfcStructuralCurveConnection_type = new entity("IfcStructuralCurveConnection", false, 1086, IFC4X3_RC3_IfcStructuralConnection_type); - IFC4X3_RC3_IfcStructuralCurveMember_type = new entity("IfcStructuralCurveMember", false, 1087, IFC4X3_RC3_IfcStructuralMember_type); - IFC4X3_RC3_IfcStructuralCurveMemberVarying_type = new entity("IfcStructuralCurveMemberVarying", false, 1089, IFC4X3_RC3_IfcStructuralCurveMember_type); - IFC4X3_RC3_IfcStructuralCurveReaction_type = new entity("IfcStructuralCurveReaction", false, 1090, IFC4X3_RC3_IfcStructuralReaction_type); - IFC4X3_RC3_IfcStructuralLinearAction_type = new entity("IfcStructuralLinearAction", false, 1092, IFC4X3_RC3_IfcStructuralCurveAction_type); - IFC4X3_RC3_IfcStructuralLoadGroup_type = new entity("IfcStructuralLoadGroup", false, 1096, IFC4X3_RC3_IfcGroup_type); - IFC4X3_RC3_IfcStructuralPointAction_type = new entity("IfcStructuralPointAction", false, 1108, IFC4X3_RC3_IfcStructuralAction_type); - IFC4X3_RC3_IfcStructuralPointConnection_type = new entity("IfcStructuralPointConnection", false, 1109, IFC4X3_RC3_IfcStructuralConnection_type); - IFC4X3_RC3_IfcStructuralPointReaction_type = new entity("IfcStructuralPointReaction", false, 1110, IFC4X3_RC3_IfcStructuralReaction_type); - IFC4X3_RC3_IfcStructuralResultGroup_type = new entity("IfcStructuralResultGroup", false, 1112, IFC4X3_RC3_IfcGroup_type); - IFC4X3_RC3_IfcStructuralSurfaceAction_type = new entity("IfcStructuralSurfaceAction", false, 1113, IFC4X3_RC3_IfcStructuralAction_type); - IFC4X3_RC3_IfcStructuralSurfaceConnection_type = new entity("IfcStructuralSurfaceConnection", false, 1115, IFC4X3_RC3_IfcStructuralConnection_type); - IFC4X3_RC3_IfcSubContractResource_type = new entity("IfcSubContractResource", false, 1123, IFC4X3_RC3_IfcConstructionResource_type); - IFC4X3_RC3_IfcSurfaceFeature_type = new entity("IfcSurfaceFeature", false, 1130, IFC4X3_RC3_IfcFeatureElement_type); - IFC4X3_RC3_IfcSwitchingDeviceType_type = new entity("IfcSwitchingDeviceType", false, 1150, IFC4X3_RC3_IfcFlowControllerType_type); - IFC4X3_RC3_IfcSystem_type = new entity("IfcSystem", false, 1152, IFC4X3_RC3_IfcGroup_type); - IFC4X3_RC3_IfcSystemFurnitureElement_type = new entity("IfcSystemFurnitureElement", false, 1153, IFC4X3_RC3_IfcFurnishingElement_type); - IFC4X3_RC3_IfcTankType_type = new entity("IfcTankType", false, 1160, IFC4X3_RC3_IfcFlowStorageDeviceType_type); - IFC4X3_RC3_IfcTendon_type = new entity("IfcTendon", false, 1171, IFC4X3_RC3_IfcReinforcingElement_type); - IFC4X3_RC3_IfcTendonAnchor_type = new entity("IfcTendonAnchor", false, 1172, IFC4X3_RC3_IfcReinforcingElement_type); - IFC4X3_RC3_IfcTendonAnchorType_type = new entity("IfcTendonAnchorType", false, 1173, IFC4X3_RC3_IfcReinforcingElementType_type); - IFC4X3_RC3_IfcTendonConduit_type = new entity("IfcTendonConduit", false, 1175, IFC4X3_RC3_IfcReinforcingElement_type); - IFC4X3_RC3_IfcTendonConduitType_type = new entity("IfcTendonConduitType", false, 1176, IFC4X3_RC3_IfcReinforcingElementType_type); - IFC4X3_RC3_IfcTendonType_type = new entity("IfcTendonType", false, 1178, IFC4X3_RC3_IfcReinforcingElementType_type); - IFC4X3_RC3_IfcTrackElementType_type = new entity("IfcTrackElementType", false, 1220, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcTransformerType_type = new entity("IfcTransformerType", false, 1223, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcTransportElement_type = new entity("IfcTransportElement", false, 1227, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcTrimmedCurve_type = new entity("IfcTrimmedCurve", false, 1235, IFC4X3_RC3_IfcBoundedCurve_type); - IFC4X3_RC3_IfcTubeBundleType_type = new entity("IfcTubeBundleType", false, 1240, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcUnitaryEquipmentType_type = new entity("IfcUnitaryEquipmentType", false, 1251, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcValveType_type = new entity("IfcValveType", false, 1259, IFC4X3_RC3_IfcFlowControllerType_type); - IFC4X3_RC3_IfcVibrationDamper_type = new entity("IfcVibrationDamper", false, 1267, IFC4X3_RC3_IfcElementComponent_type); - IFC4X3_RC3_IfcVibrationDamperType_type = new entity("IfcVibrationDamperType", false, 1268, IFC4X3_RC3_IfcElementComponentType_type); - IFC4X3_RC3_IfcVibrationIsolator_type = new entity("IfcVibrationIsolator", false, 1270, IFC4X3_RC3_IfcElementComponent_type); - IFC4X3_RC3_IfcVibrationIsolatorType_type = new entity("IfcVibrationIsolatorType", false, 1271, IFC4X3_RC3_IfcElementComponentType_type); - IFC4X3_RC3_IfcVienneseBend_type = new entity("IfcVienneseBend", false, 1273, IFC4X3_RC3_IfcBoundedCurve_type); - IFC4X3_RC3_IfcVirtualElement_type = new entity("IfcVirtualElement", false, 1274, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcVoidStratum_type = new entity("IfcVoidStratum", false, 1278, IFC4X3_RC3_IfcGeotechnicalStratum_type); - IFC4X3_RC3_IfcVoidingFeature_type = new entity("IfcVoidingFeature", false, 1276, IFC4X3_RC3_IfcFeatureElementSubtraction_type); - IFC4X3_RC3_IfcWallType_type = new entity("IfcWallType", false, 1284, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcWasteTerminalType_type = new entity("IfcWasteTerminalType", false, 1290, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcWaterStratum_type = new entity("IfcWaterStratum", false, 1292, IFC4X3_RC3_IfcGeotechnicalStratum_type); - IFC4X3_RC3_IfcWindowType_type = new entity("IfcWindowType", false, 1302, IFC4X3_RC3_IfcBuiltElementType_type); - IFC4X3_RC3_IfcWorkCalendar_type = new entity("IfcWorkCalendar", false, 1305, IFC4X3_RC3_IfcControl_type); - IFC4X3_RC3_IfcWorkControl_type = new entity("IfcWorkControl", true, 1307, IFC4X3_RC3_IfcControl_type); - IFC4X3_RC3_IfcWorkPlan_type = new entity("IfcWorkPlan", false, 1308, IFC4X3_RC3_IfcWorkControl_type); - IFC4X3_RC3_IfcWorkSchedule_type = new entity("IfcWorkSchedule", false, 1310, IFC4X3_RC3_IfcWorkControl_type); - IFC4X3_RC3_IfcZone_type = new entity("IfcZone", false, 1313, IFC4X3_RC3_IfcSystem_type); + IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type = new entity("IfcDirectrixDerivedReferenceSweptAreaSolid", false, 310, IFC4X3_RC3_IfcFixedReferenceSweptAreaSolid_type); + IFC4X3_RC3_IfcDistributionElementType_type = new entity("IfcDistributionElementType", false, 325, IFC4X3_RC3_IfcElementType_type); + IFC4X3_RC3_IfcDistributionFlowElementType_type = new entity("IfcDistributionFlowElementType", true, 327, IFC4X3_RC3_IfcDistributionElementType_type); + IFC4X3_RC3_IfcDoorLiningProperties_type = new entity("IfcDoorLiningProperties", false, 339, IFC4X3_RC3_IfcPreDefinedPropertySet_type); + IFC4X3_RC3_IfcDoorPanelProperties_type = new entity("IfcDoorPanelProperties", false, 342, IFC4X3_RC3_IfcPreDefinedPropertySet_type); + IFC4X3_RC3_IfcDoorType_type = new entity("IfcDoorType", false, 347, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcDraughtingPreDefinedColour_type = new entity("IfcDraughtingPreDefinedColour", false, 351, IFC4X3_RC3_IfcPreDefinedColour_type); + IFC4X3_RC3_IfcDraughtingPreDefinedCurveFont_type = new entity("IfcDraughtingPreDefinedCurveFont", false, 352, IFC4X3_RC3_IfcPreDefinedCurveFont_type); + IFC4X3_RC3_IfcElement_type = new entity("IfcElement", true, 399, IFC4X3_RC3_IfcProduct_type); + IFC4X3_RC3_IfcElementAssembly_type = new entity("IfcElementAssembly", false, 401, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcElementAssemblyType_type = new entity("IfcElementAssemblyType", false, 402, IFC4X3_RC3_IfcElementType_type); + IFC4X3_RC3_IfcElementComponent_type = new entity("IfcElementComponent", true, 404, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcElementComponentType_type = new entity("IfcElementComponentType", true, 405, IFC4X3_RC3_IfcElementType_type); + IFC4X3_RC3_IfcEllipse_type = new entity("IfcEllipse", false, 409, IFC4X3_RC3_IfcConic_type); + IFC4X3_RC3_IfcEnergyConversionDeviceType_type = new entity("IfcEnergyConversionDeviceType", true, 412, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcEngineType_type = new entity("IfcEngineType", false, 415, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcEvaporativeCoolerType_type = new entity("IfcEvaporativeCoolerType", false, 418, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcEvaporatorType_type = new entity("IfcEvaporatorType", false, 421, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcEvent_type = new entity("IfcEvent", false, 423, IFC4X3_RC3_IfcProcess_type); + IFC4X3_RC3_IfcExternalSpatialStructureElement_type = new entity("IfcExternalSpatialStructureElement", true, 437, IFC4X3_RC3_IfcSpatialElement_type); + IFC4X3_RC3_IfcFacetedBrep_type = new entity("IfcFacetedBrep", false, 445, IFC4X3_RC3_IfcManifoldSolidBrep_type); + IFC4X3_RC3_IfcFacetedBrepWithVoids_type = new entity("IfcFacetedBrepWithVoids", false, 446, IFC4X3_RC3_IfcFacetedBrep_type); + IFC4X3_RC3_IfcFacility_type = new entity("IfcFacility", false, 447, IFC4X3_RC3_IfcSpatialStructureElement_type); + IFC4X3_RC3_IfcFacilityPart_type = new entity("IfcFacilityPart", false, 448, IFC4X3_RC3_IfcSpatialStructureElement_type); + IFC4X3_RC3_IfcFastener_type = new entity("IfcFastener", false, 456, IFC4X3_RC3_IfcElementComponent_type); + IFC4X3_RC3_IfcFastenerType_type = new entity("IfcFastenerType", false, 457, IFC4X3_RC3_IfcElementComponentType_type); + IFC4X3_RC3_IfcFeatureElement_type = new entity("IfcFeatureElement", true, 459, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcFeatureElementAddition_type = new entity("IfcFeatureElementAddition", true, 460, IFC4X3_RC3_IfcFeatureElement_type); + IFC4X3_RC3_IfcFeatureElementSubtraction_type = new entity("IfcFeatureElementSubtraction", true, 461, IFC4X3_RC3_IfcFeatureElement_type); + IFC4X3_RC3_IfcFlowControllerType_type = new entity("IfcFlowControllerType", true, 474, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcFlowFittingType_type = new entity("IfcFlowFittingType", true, 477, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcFlowMeterType_type = new entity("IfcFlowMeterType", false, 482, IFC4X3_RC3_IfcFlowControllerType_type); + IFC4X3_RC3_IfcFlowMovingDeviceType_type = new entity("IfcFlowMovingDeviceType", true, 485, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcFlowSegmentType_type = new entity("IfcFlowSegmentType", true, 487, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcFlowStorageDeviceType_type = new entity("IfcFlowStorageDeviceType", true, 489, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcFlowTerminalType_type = new entity("IfcFlowTerminalType", true, 491, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcFlowTreatmentDeviceType_type = new entity("IfcFlowTreatmentDeviceType", true, 493, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcFootingType_type = new entity("IfcFootingType", false, 498, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcFurnishingElement_type = new entity("IfcFurnishingElement", false, 502, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcFurniture_type = new entity("IfcFurniture", false, 504, IFC4X3_RC3_IfcFurnishingElement_type); + IFC4X3_RC3_IfcGeographicElement_type = new entity("IfcGeographicElement", false, 507, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcGeotechnicalElement_type = new entity("IfcGeotechnicalElement", true, 520, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcGeotechnicalStratum_type = new entity("IfcGeotechnicalStratum", true, 521, IFC4X3_RC3_IfcGeotechnicalElement_type); + IFC4X3_RC3_IfcGradientCurve_type = new entity("IfcGradientCurve", false, 524, IFC4X3_RC3_IfcCompositeCurve_type); + IFC4X3_RC3_IfcGroup_type = new entity("IfcGroup", false, 530, IFC4X3_RC3_IfcObject_type); + IFC4X3_RC3_IfcHeatExchangerType_type = new entity("IfcHeatExchangerType", false, 534, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcHumidifierType_type = new entity("IfcHumidifierType", false, 539, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcImpactProtectionDevice_type = new entity("IfcImpactProtectionDevice", false, 544, IFC4X3_RC3_IfcElementComponent_type); + IFC4X3_RC3_IfcImpactProtectionDeviceType_type = new entity("IfcImpactProtectionDeviceType", false, 545, IFC4X3_RC3_IfcElementComponentType_type); + IFC4X3_RC3_IfcIndexedPolyCurve_type = new entity("IfcIndexedPolyCurve", false, 550, IFC4X3_RC3_IfcBoundedCurve_type); + IFC4X3_RC3_IfcInterceptorType_type = new entity("IfcInterceptorType", false, 559, IFC4X3_RC3_IfcFlowTreatmentDeviceType_type); + IFC4X3_RC3_IfcIntersectionCurve_type = new entity("IfcIntersectionCurve", false, 563, IFC4X3_RC3_IfcSurfaceCurve_type); + IFC4X3_RC3_IfcInventory_type = new entity("IfcInventory", false, 564, IFC4X3_RC3_IfcGroup_type); + IFC4X3_RC3_IfcJunctionBoxType_type = new entity("IfcJunctionBoxType", false, 572, IFC4X3_RC3_IfcFlowFittingType_type); + IFC4X3_RC3_IfcKerbType_type = new entity("IfcKerbType", false, 575, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcLaborResource_type = new entity("IfcLaborResource", false, 579, IFC4X3_RC3_IfcConstructionResource_type); + IFC4X3_RC3_IfcLampType_type = new entity("IfcLampType", false, 584, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcLightFixtureType_type = new entity("IfcLightFixtureType", false, 598, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcLinearElement_type = new entity("IfcLinearElement", true, 608, IFC4X3_RC3_IfcProduct_type); + IFC4X3_RC3_IfcLiquidTerminalType_type = new entity("IfcLiquidTerminalType", false, 617, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcMarineFacility_type = new entity("IfcMarineFacility", false, 633, IFC4X3_RC3_IfcFacility_type); + IFC4X3_RC3_IfcMechanicalFastener_type = new entity("IfcMechanicalFastener", false, 662, IFC4X3_RC3_IfcElementComponent_type); + IFC4X3_RC3_IfcMechanicalFastenerType_type = new entity("IfcMechanicalFastenerType", false, 663, IFC4X3_RC3_IfcElementComponentType_type); + IFC4X3_RC3_IfcMedicalDeviceType_type = new entity("IfcMedicalDeviceType", false, 666, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcMemberType_type = new entity("IfcMemberType", false, 670, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcMobileTelecommunicationsApplianceType_type = new entity("IfcMobileTelecommunicationsApplianceType", false, 676, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcMooringDeviceType_type = new entity("IfcMooringDeviceType", false, 692, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcMotorConnectionType_type = new entity("IfcMotorConnectionType", false, 695, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcNavigationElementType_type = new entity("IfcNavigationElementType", false, 699, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcOccupant_type = new entity("IfcOccupant", false, 711, IFC4X3_RC3_IfcActor_type); + IFC4X3_RC3_IfcOpeningElement_type = new entity("IfcOpeningElement", false, 718, IFC4X3_RC3_IfcFeatureElementSubtraction_type); + IFC4X3_RC3_IfcOpeningStandardCase_type = new entity("IfcOpeningStandardCase", false, 720, IFC4X3_RC3_IfcOpeningElement_type); + IFC4X3_RC3_IfcOutletType_type = new entity("IfcOutletType", false, 727, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcPavementType_type = new entity("IfcPavementType", false, 734, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcPerformanceHistory_type = new entity("IfcPerformanceHistory", false, 737, IFC4X3_RC3_IfcControl_type); + IFC4X3_RC3_IfcPermeableCoveringProperties_type = new entity("IfcPermeableCoveringProperties", false, 740, IFC4X3_RC3_IfcPreDefinedPropertySet_type); + IFC4X3_RC3_IfcPermit_type = new entity("IfcPermit", false, 741, IFC4X3_RC3_IfcControl_type); + IFC4X3_RC3_IfcPileType_type = new entity("IfcPileType", false, 752, IFC4X3_RC3_IfcDeepFoundationType_type); + IFC4X3_RC3_IfcPipeFittingType_type = new entity("IfcPipeFittingType", false, 755, IFC4X3_RC3_IfcFlowFittingType_type); + IFC4X3_RC3_IfcPipeSegmentType_type = new entity("IfcPipeSegmentType", false, 758, IFC4X3_RC3_IfcFlowSegmentType_type); + IFC4X3_RC3_IfcPlant_type = new entity("IfcPlant", false, 767, IFC4X3_RC3_IfcGeographicElement_type); + IFC4X3_RC3_IfcPlateType_type = new entity("IfcPlateType", false, 770, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcPolygonalFaceSet_type = new entity("IfcPolygonalFaceSet", false, 778, IFC4X3_RC3_IfcTessellatedFaceSet_type); + IFC4X3_RC3_IfcPolyline_type = new entity("IfcPolyline", false, 779, IFC4X3_RC3_IfcBoundedCurve_type); + IFC4X3_RC3_IfcPort_type = new entity("IfcPort", true, 782, IFC4X3_RC3_IfcProduct_type); + IFC4X3_RC3_IfcPositioningElement_type = new entity("IfcPositioningElement", true, 783, IFC4X3_RC3_IfcProduct_type); + IFC4X3_RC3_IfcProcedure_type = new entity("IfcProcedure", false, 803, IFC4X3_RC3_IfcProcess_type); + IFC4X3_RC3_IfcProjectOrder_type = new entity("IfcProjectOrder", false, 822, IFC4X3_RC3_IfcControl_type); + IFC4X3_RC3_IfcProjectionElement_type = new entity("IfcProjectionElement", false, 819, IFC4X3_RC3_IfcFeatureElementAddition_type); + IFC4X3_RC3_IfcProtectiveDeviceType_type = new entity("IfcProtectiveDeviceType", false, 847, IFC4X3_RC3_IfcFlowControllerType_type); + IFC4X3_RC3_IfcPumpType_type = new entity("IfcPumpType", false, 851, IFC4X3_RC3_IfcFlowMovingDeviceType_type); + IFC4X3_RC3_IfcRailType_type = new entity("IfcRailType", false, 865, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcRailingType_type = new entity("IfcRailingType", false, 863, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcRailway_type = new entity("IfcRailway", false, 867, IFC4X3_RC3_IfcFacility_type); + IFC4X3_RC3_IfcRampFlightType_type = new entity("IfcRampFlightType", false, 872, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcRampType_type = new entity("IfcRampType", false, 874, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcRationalBSplineSurfaceWithKnots_type = new entity("IfcRationalBSplineSurfaceWithKnots", false, 878, IFC4X3_RC3_IfcBSplineSurfaceWithKnots_type); + IFC4X3_RC3_IfcReferent_type = new entity("IfcReferent", false, 887, IFC4X3_RC3_IfcPositioningElement_type); + IFC4X3_RC3_IfcReinforcingElement_type = new entity("IfcReinforcingElement", true, 900, IFC4X3_RC3_IfcElementComponent_type); + IFC4X3_RC3_IfcReinforcingElementType_type = new entity("IfcReinforcingElementType", true, 901, IFC4X3_RC3_IfcElementComponentType_type); + IFC4X3_RC3_IfcReinforcingMesh_type = new entity("IfcReinforcingMesh", false, 902, IFC4X3_RC3_IfcReinforcingElement_type); + IFC4X3_RC3_IfcReinforcingMeshType_type = new entity("IfcReinforcingMeshType", false, 903, IFC4X3_RC3_IfcReinforcingElementType_type); + IFC4X3_RC3_IfcRelAggregates_type = new entity("IfcRelAggregates", false, 905, IFC4X3_RC3_IfcRelDecomposes_type); + IFC4X3_RC3_IfcRoad_type = new entity("IfcRoad", false, 971, IFC4X3_RC3_IfcFacility_type); + IFC4X3_RC3_IfcRoofType_type = new entity("IfcRoofType", false, 976, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcSanitaryTerminalType_type = new entity("IfcSanitaryTerminalType", false, 985, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcSeamCurve_type = new entity("IfcSeamCurve", false, 988, IFC4X3_RC3_IfcSurfaceCurve_type); + IFC4X3_RC3_IfcSecondOrderPolynomialSpiral_type = new entity("IfcSecondOrderPolynomialSpiral", false, 989, IFC4X3_RC3_IfcSpiral_type); + IFC4X3_RC3_IfcSegmentedReferenceCurve_type = new entity("IfcSegmentedReferenceCurve", false, 1000, IFC4X3_RC3_IfcCompositeCurve_type); + IFC4X3_RC3_IfcShadingDeviceType_type = new entity("IfcShadingDeviceType", false, 1007, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcSign_type = new entity("IfcSign", false, 1015, IFC4X3_RC3_IfcElementComponent_type); + IFC4X3_RC3_IfcSignType_type = new entity("IfcSignType", false, 1019, IFC4X3_RC3_IfcElementComponentType_type); + IFC4X3_RC3_IfcSignalType_type = new entity("IfcSignalType", false, 1017, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcSine_type = new entity("IfcSine", false, 1025, IFC4X3_RC3_IfcSpiral_type); + IFC4X3_RC3_IfcSite_type = new entity("IfcSite", false, 1027, IFC4X3_RC3_IfcSpatialStructureElement_type); + IFC4X3_RC3_IfcSlabType_type = new entity("IfcSlabType", false, 1034, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcSolarDeviceType_type = new entity("IfcSolarDeviceType", false, 1038, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcSolidStratum_type = new entity("IfcSolidStratum", false, 1043, IFC4X3_RC3_IfcGeotechnicalStratum_type); + IFC4X3_RC3_IfcSpace_type = new entity("IfcSpace", false, 1048, IFC4X3_RC3_IfcSpatialStructureElement_type); + IFC4X3_RC3_IfcSpaceHeaterType_type = new entity("IfcSpaceHeaterType", false, 1051, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcSpaceType_type = new entity("IfcSpaceType", false, 1053, IFC4X3_RC3_IfcSpatialStructureElementType_type); + IFC4X3_RC3_IfcStackTerminalType_type = new entity("IfcStackTerminalType", false, 1071, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcStairFlightType_type = new entity("IfcStairFlightType", false, 1075, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcStairType_type = new entity("IfcStairType", false, 1077, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcStructuralAction_type = new entity("IfcStructuralAction", true, 1080, IFC4X3_RC3_IfcStructuralActivity_type); + IFC4X3_RC3_IfcStructuralConnection_type = new entity("IfcStructuralConnection", true, 1084, IFC4X3_RC3_IfcStructuralItem_type); + IFC4X3_RC3_IfcStructuralCurveAction_type = new entity("IfcStructuralCurveAction", false, 1086, IFC4X3_RC3_IfcStructuralAction_type); + IFC4X3_RC3_IfcStructuralCurveConnection_type = new entity("IfcStructuralCurveConnection", false, 1088, IFC4X3_RC3_IfcStructuralConnection_type); + IFC4X3_RC3_IfcStructuralCurveMember_type = new entity("IfcStructuralCurveMember", false, 1089, IFC4X3_RC3_IfcStructuralMember_type); + IFC4X3_RC3_IfcStructuralCurveMemberVarying_type = new entity("IfcStructuralCurveMemberVarying", false, 1091, IFC4X3_RC3_IfcStructuralCurveMember_type); + IFC4X3_RC3_IfcStructuralCurveReaction_type = new entity("IfcStructuralCurveReaction", false, 1092, IFC4X3_RC3_IfcStructuralReaction_type); + IFC4X3_RC3_IfcStructuralLinearAction_type = new entity("IfcStructuralLinearAction", false, 1094, IFC4X3_RC3_IfcStructuralCurveAction_type); + IFC4X3_RC3_IfcStructuralLoadGroup_type = new entity("IfcStructuralLoadGroup", false, 1098, IFC4X3_RC3_IfcGroup_type); + IFC4X3_RC3_IfcStructuralPointAction_type = new entity("IfcStructuralPointAction", false, 1110, IFC4X3_RC3_IfcStructuralAction_type); + IFC4X3_RC3_IfcStructuralPointConnection_type = new entity("IfcStructuralPointConnection", false, 1111, IFC4X3_RC3_IfcStructuralConnection_type); + IFC4X3_RC3_IfcStructuralPointReaction_type = new entity("IfcStructuralPointReaction", false, 1112, IFC4X3_RC3_IfcStructuralReaction_type); + IFC4X3_RC3_IfcStructuralResultGroup_type = new entity("IfcStructuralResultGroup", false, 1114, IFC4X3_RC3_IfcGroup_type); + IFC4X3_RC3_IfcStructuralSurfaceAction_type = new entity("IfcStructuralSurfaceAction", false, 1115, IFC4X3_RC3_IfcStructuralAction_type); + IFC4X3_RC3_IfcStructuralSurfaceConnection_type = new entity("IfcStructuralSurfaceConnection", false, 1117, IFC4X3_RC3_IfcStructuralConnection_type); + IFC4X3_RC3_IfcSubContractResource_type = new entity("IfcSubContractResource", false, 1125, IFC4X3_RC3_IfcConstructionResource_type); + IFC4X3_RC3_IfcSurfaceFeature_type = new entity("IfcSurfaceFeature", false, 1132, IFC4X3_RC3_IfcFeatureElement_type); + IFC4X3_RC3_IfcSwitchingDeviceType_type = new entity("IfcSwitchingDeviceType", false, 1152, IFC4X3_RC3_IfcFlowControllerType_type); + IFC4X3_RC3_IfcSystem_type = new entity("IfcSystem", false, 1154, IFC4X3_RC3_IfcGroup_type); + IFC4X3_RC3_IfcSystemFurnitureElement_type = new entity("IfcSystemFurnitureElement", false, 1155, IFC4X3_RC3_IfcFurnishingElement_type); + IFC4X3_RC3_IfcTankType_type = new entity("IfcTankType", false, 1162, IFC4X3_RC3_IfcFlowStorageDeviceType_type); + IFC4X3_RC3_IfcTendon_type = new entity("IfcTendon", false, 1173, IFC4X3_RC3_IfcReinforcingElement_type); + IFC4X3_RC3_IfcTendonAnchor_type = new entity("IfcTendonAnchor", false, 1174, IFC4X3_RC3_IfcReinforcingElement_type); + IFC4X3_RC3_IfcTendonAnchorType_type = new entity("IfcTendonAnchorType", false, 1175, IFC4X3_RC3_IfcReinforcingElementType_type); + IFC4X3_RC3_IfcTendonConduit_type = new entity("IfcTendonConduit", false, 1177, IFC4X3_RC3_IfcReinforcingElement_type); + IFC4X3_RC3_IfcTendonConduitType_type = new entity("IfcTendonConduitType", false, 1178, IFC4X3_RC3_IfcReinforcingElementType_type); + IFC4X3_RC3_IfcTendonType_type = new entity("IfcTendonType", false, 1180, IFC4X3_RC3_IfcReinforcingElementType_type); + IFC4X3_RC3_IfcTrackElementType_type = new entity("IfcTrackElementType", false, 1222, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcTransformerType_type = new entity("IfcTransformerType", false, 1225, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcTransportElement_type = new entity("IfcTransportElement", false, 1229, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcTrimmedCurve_type = new entity("IfcTrimmedCurve", false, 1237, IFC4X3_RC3_IfcBoundedCurve_type); + IFC4X3_RC3_IfcTubeBundleType_type = new entity("IfcTubeBundleType", false, 1242, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcUnitaryEquipmentType_type = new entity("IfcUnitaryEquipmentType", false, 1253, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcValveType_type = new entity("IfcValveType", false, 1261, IFC4X3_RC3_IfcFlowControllerType_type); + IFC4X3_RC3_IfcVibrationDamper_type = new entity("IfcVibrationDamper", false, 1269, IFC4X3_RC3_IfcElementComponent_type); + IFC4X3_RC3_IfcVibrationDamperType_type = new entity("IfcVibrationDamperType", false, 1270, IFC4X3_RC3_IfcElementComponentType_type); + IFC4X3_RC3_IfcVibrationIsolator_type = new entity("IfcVibrationIsolator", false, 1272, IFC4X3_RC3_IfcElementComponent_type); + IFC4X3_RC3_IfcVibrationIsolatorType_type = new entity("IfcVibrationIsolatorType", false, 1273, IFC4X3_RC3_IfcElementComponentType_type); + IFC4X3_RC3_IfcVienneseBend_type = new entity("IfcVienneseBend", false, 1275, IFC4X3_RC3_IfcBoundedCurve_type); + IFC4X3_RC3_IfcVirtualElement_type = new entity("IfcVirtualElement", false, 1276, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcVoidStratum_type = new entity("IfcVoidStratum", false, 1280, IFC4X3_RC3_IfcGeotechnicalStratum_type); + IFC4X3_RC3_IfcVoidingFeature_type = new entity("IfcVoidingFeature", false, 1278, IFC4X3_RC3_IfcFeatureElementSubtraction_type); + IFC4X3_RC3_IfcWallType_type = new entity("IfcWallType", false, 1286, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcWasteTerminalType_type = new entity("IfcWasteTerminalType", false, 1292, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcWaterStratum_type = new entity("IfcWaterStratum", false, 1294, IFC4X3_RC3_IfcGeotechnicalStratum_type); + IFC4X3_RC3_IfcWindowType_type = new entity("IfcWindowType", false, 1304, IFC4X3_RC3_IfcBuiltElementType_type); + IFC4X3_RC3_IfcWorkCalendar_type = new entity("IfcWorkCalendar", false, 1307, IFC4X3_RC3_IfcControl_type); + IFC4X3_RC3_IfcWorkControl_type = new entity("IfcWorkControl", true, 1309, IFC4X3_RC3_IfcControl_type); + IFC4X3_RC3_IfcWorkPlan_type = new entity("IfcWorkPlan", false, 1310, IFC4X3_RC3_IfcWorkControl_type); + IFC4X3_RC3_IfcWorkSchedule_type = new entity("IfcWorkSchedule", false, 1312, IFC4X3_RC3_IfcWorkControl_type); + IFC4X3_RC3_IfcZone_type = new entity("IfcZone", false, 1315, IFC4X3_RC3_IfcSystem_type); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcCurveStyleFontAndScaling_type); @@ -6996,19 +7034,19 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcElement_type); items.push_back(IFC4X3_RC3_IfcSpatialElement_type); - IFC4X3_RC3_IfcInterferenceSelect_type = new select_type("IfcInterferenceSelect", 560, items); + IFC4X3_RC3_IfcInterferenceSelect_type = new select_type("IfcInterferenceSelect", 561, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcGroup_type); items.push_back(IFC4X3_RC3_IfcProduct_type); - IFC4X3_RC3_IfcSpatialReferenceSelect_type = new select_type("IfcSpatialReferenceSelect", 1055, items); + IFC4X3_RC3_IfcSpatialReferenceSelect_type = new select_type("IfcSpatialReferenceSelect", 1057, items); } { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcElement_type); items.push_back(IFC4X3_RC3_IfcStructuralItem_type); - IFC4X3_RC3_IfcStructuralActivityAssignmentSelect_type = new select_type("IfcStructuralActivityAssignmentSelect", 1080, items); + IFC4X3_RC3_IfcStructuralActivityAssignmentSelect_type = new select_type("IfcStructuralActivityAssignmentSelect", 1082, items); } IFC4X3_RC3_IfcActionRequest_type = new entity("IfcActionRequest", false, 2, IFC4X3_RC3_IfcControl_type); IFC4X3_RC3_IfcAirTerminalBoxType_type = new entity("IfcAirTerminalBoxType", false, 19, IFC4X3_RC3_IfcFlowControllerType_type); @@ -7061,120 +7099,120 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcCurtainWall_type = new entity("IfcCurtainWall", false, 269, IFC4X3_RC3_IfcBuiltElement_type); IFC4X3_RC3_IfcDamperType_type = new entity("IfcDamperType", false, 289, IFC4X3_RC3_IfcFlowControllerType_type); IFC4X3_RC3_IfcDeepFoundation_type = new entity("IfcDeepFoundation", false, 296, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcDiscreteAccessory_type = new entity("IfcDiscreteAccessory", false, 311, IFC4X3_RC3_IfcElementComponent_type); - IFC4X3_RC3_IfcDiscreteAccessoryType_type = new entity("IfcDiscreteAccessoryType", false, 312, IFC4X3_RC3_IfcElementComponentType_type); - IFC4X3_RC3_IfcDistributionBoardType_type = new entity("IfcDistributionBoardType", false, 315, IFC4X3_RC3_IfcFlowControllerType_type); - IFC4X3_RC3_IfcDistributionChamberElementType_type = new entity("IfcDistributionChamberElementType", false, 318, IFC4X3_RC3_IfcDistributionFlowElementType_type); - IFC4X3_RC3_IfcDistributionControlElementType_type = new entity("IfcDistributionControlElementType", true, 322, IFC4X3_RC3_IfcDistributionElementType_type); - IFC4X3_RC3_IfcDistributionElement_type = new entity("IfcDistributionElement", false, 323, IFC4X3_RC3_IfcElement_type); - IFC4X3_RC3_IfcDistributionFlowElement_type = new entity("IfcDistributionFlowElement", false, 325, IFC4X3_RC3_IfcDistributionElement_type); - IFC4X3_RC3_IfcDistributionPort_type = new entity("IfcDistributionPort", false, 327, IFC4X3_RC3_IfcPort_type); - IFC4X3_RC3_IfcDistributionSystem_type = new entity("IfcDistributionSystem", false, 329, IFC4X3_RC3_IfcSystem_type); - IFC4X3_RC3_IfcDoor_type = new entity("IfcDoor", false, 337, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcDoorStandardCase_type = new entity("IfcDoorStandardCase", false, 342, IFC4X3_RC3_IfcDoor_type); - IFC4X3_RC3_IfcDuctFittingType_type = new entity("IfcDuctFittingType", false, 353, IFC4X3_RC3_IfcFlowFittingType_type); - IFC4X3_RC3_IfcDuctSegmentType_type = new entity("IfcDuctSegmentType", false, 356, IFC4X3_RC3_IfcFlowSegmentType_type); - IFC4X3_RC3_IfcDuctSilencerType_type = new entity("IfcDuctSilencerType", false, 359, IFC4X3_RC3_IfcFlowTreatmentDeviceType_type); - IFC4X3_RC3_IfcEarthworksCut_type = new entity("IfcEarthworksCut", false, 363, IFC4X3_RC3_IfcFeatureElementSubtraction_type); - IFC4X3_RC3_IfcEarthworksElement_type = new entity("IfcEarthworksElement", false, 365, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcEarthworksFill_type = new entity("IfcEarthworksFill", false, 366, IFC4X3_RC3_IfcEarthworksElement_type); - IFC4X3_RC3_IfcElectricApplianceType_type = new entity("IfcElectricApplianceType", false, 372, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcElectricDistributionBoardType_type = new entity("IfcElectricDistributionBoardType", false, 379, IFC4X3_RC3_IfcFlowControllerType_type); - IFC4X3_RC3_IfcElectricFlowStorageDeviceType_type = new entity("IfcElectricFlowStorageDeviceType", false, 382, IFC4X3_RC3_IfcFlowStorageDeviceType_type); - IFC4X3_RC3_IfcElectricFlowTreatmentDeviceType_type = new entity("IfcElectricFlowTreatmentDeviceType", false, 385, IFC4X3_RC3_IfcFlowTreatmentDeviceType_type); - IFC4X3_RC3_IfcElectricGeneratorType_type = new entity("IfcElectricGeneratorType", false, 388, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcElectricMotorType_type = new entity("IfcElectricMotorType", false, 391, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); - IFC4X3_RC3_IfcElectricTimeControlType_type = new entity("IfcElectricTimeControlType", false, 395, IFC4X3_RC3_IfcFlowControllerType_type); - IFC4X3_RC3_IfcEnergyConversionDevice_type = new entity("IfcEnergyConversionDevice", false, 410, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcEngine_type = new entity("IfcEngine", false, 413, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcEvaporativeCooler_type = new entity("IfcEvaporativeCooler", false, 416, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcEvaporator_type = new entity("IfcEvaporator", false, 419, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcExternalSpatialElement_type = new entity("IfcExternalSpatialElement", false, 434, IFC4X3_RC3_IfcExternalSpatialStructureElement_type); - IFC4X3_RC3_IfcFanType_type = new entity("IfcFanType", false, 453, IFC4X3_RC3_IfcFlowMovingDeviceType_type); - IFC4X3_RC3_IfcFilterType_type = new entity("IfcFilterType", false, 466, IFC4X3_RC3_IfcFlowTreatmentDeviceType_type); - IFC4X3_RC3_IfcFireSuppressionTerminalType_type = new entity("IfcFireSuppressionTerminalType", false, 469, IFC4X3_RC3_IfcFlowTerminalType_type); - IFC4X3_RC3_IfcFlowController_type = new entity("IfcFlowController", false, 472, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcFlowFitting_type = new entity("IfcFlowFitting", false, 475, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcFlowInstrumentType_type = new entity("IfcFlowInstrumentType", false, 478, IFC4X3_RC3_IfcDistributionControlElementType_type); - IFC4X3_RC3_IfcFlowMeter_type = new entity("IfcFlowMeter", false, 480, IFC4X3_RC3_IfcFlowController_type); - IFC4X3_RC3_IfcFlowMovingDevice_type = new entity("IfcFlowMovingDevice", false, 483, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcFlowSegment_type = new entity("IfcFlowSegment", false, 485, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcFlowStorageDevice_type = new entity("IfcFlowStorageDevice", false, 487, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcFlowTerminal_type = new entity("IfcFlowTerminal", false, 489, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcFlowTreatmentDevice_type = new entity("IfcFlowTreatmentDevice", false, 491, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcFooting_type = new entity("IfcFooting", false, 496, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcGeotechnicalAssembly_type = new entity("IfcGeotechnicalAssembly", true, 518, IFC4X3_RC3_IfcGeotechnicalElement_type); - IFC4X3_RC3_IfcGrid_type = new entity("IfcGrid", false, 524, IFC4X3_RC3_IfcPositioningElement_type); - IFC4X3_RC3_IfcHeatExchanger_type = new entity("IfcHeatExchanger", false, 532, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcHumidifier_type = new entity("IfcHumidifier", false, 537, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcInterceptor_type = new entity("IfcInterceptor", false, 557, IFC4X3_RC3_IfcFlowTreatmentDevice_type); - IFC4X3_RC3_IfcJunctionBox_type = new entity("IfcJunctionBox", false, 570, IFC4X3_RC3_IfcFlowFitting_type); - IFC4X3_RC3_IfcKerb_type = new entity("IfcKerb", false, 573, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcLamp_type = new entity("IfcLamp", false, 582, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcLightFixture_type = new entity("IfcLightFixture", false, 596, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcLinearPositioningElement_type = new entity("IfcLinearPositioningElement", false, 611, IFC4X3_RC3_IfcPositioningElement_type); - IFC4X3_RC3_IfcLiquidTerminal_type = new entity("IfcLiquidTerminal", false, 615, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcMedicalDevice_type = new entity("IfcMedicalDevice", false, 664, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcMember_type = new entity("IfcMember", false, 667, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcMemberStandardCase_type = new entity("IfcMemberStandardCase", false, 668, IFC4X3_RC3_IfcMember_type); - IFC4X3_RC3_IfcMobileTelecommunicationsAppliance_type = new entity("IfcMobileTelecommunicationsAppliance", false, 674, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcMooringDevice_type = new entity("IfcMooringDevice", false, 690, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcMotorConnection_type = new entity("IfcMotorConnection", false, 693, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcNavigationElement_type = new entity("IfcNavigationElement", false, 697, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcOuterBoundaryCurve_type = new entity("IfcOuterBoundaryCurve", false, 724, IFC4X3_RC3_IfcBoundaryCurve_type); - IFC4X3_RC3_IfcOutlet_type = new entity("IfcOutlet", false, 725, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcPavement_type = new entity("IfcPavement", false, 732, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcPile_type = new entity("IfcPile", false, 748, IFC4X3_RC3_IfcDeepFoundation_type); - IFC4X3_RC3_IfcPipeFitting_type = new entity("IfcPipeFitting", false, 752, IFC4X3_RC3_IfcFlowFitting_type); - IFC4X3_RC3_IfcPipeSegment_type = new entity("IfcPipeSegment", false, 755, IFC4X3_RC3_IfcFlowSegment_type); - IFC4X3_RC3_IfcPlate_type = new entity("IfcPlate", false, 766, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcPlateStandardCase_type = new entity("IfcPlateStandardCase", false, 767, IFC4X3_RC3_IfcPlate_type); - IFC4X3_RC3_IfcProtectiveDevice_type = new entity("IfcProtectiveDevice", false, 841, IFC4X3_RC3_IfcFlowController_type); - IFC4X3_RC3_IfcProtectiveDeviceTrippingUnitType_type = new entity("IfcProtectiveDeviceTrippingUnitType", false, 843, IFC4X3_RC3_IfcDistributionControlElementType_type); - IFC4X3_RC3_IfcPump_type = new entity("IfcPump", false, 848, IFC4X3_RC3_IfcFlowMovingDevice_type); - IFC4X3_RC3_IfcRail_type = new entity("IfcRail", false, 859, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcRailing_type = new entity("IfcRailing", false, 860, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcRamp_type = new entity("IfcRamp", false, 868, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcRampFlight_type = new entity("IfcRampFlight", false, 869, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcRationalBSplineCurveWithKnots_type = new entity("IfcRationalBSplineCurveWithKnots", false, 875, IFC4X3_RC3_IfcBSplineCurveWithKnots_type); - IFC4X3_RC3_IfcReinforcedSoil_type = new entity("IfcReinforcedSoil", false, 889, IFC4X3_RC3_IfcEarthworksElement_type); - IFC4X3_RC3_IfcReinforcingBar_type = new entity("IfcReinforcingBar", false, 893, IFC4X3_RC3_IfcReinforcingElement_type); - IFC4X3_RC3_IfcReinforcingBarType_type = new entity("IfcReinforcingBarType", false, 896, IFC4X3_RC3_IfcReinforcingElementType_type); - IFC4X3_RC3_IfcRoof_type = new entity("IfcRoof", false, 973, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcSanitaryTerminal_type = new entity("IfcSanitaryTerminal", false, 982, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcSensorType_type = new entity("IfcSensorType", false, 1001, IFC4X3_RC3_IfcDistributionControlElementType_type); - IFC4X3_RC3_IfcShadingDevice_type = new entity("IfcShadingDevice", false, 1004, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcSignal_type = new entity("IfcSignal", false, 1014, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcSlab_type = new entity("IfcSlab", false, 1029, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcSlabElementedCase_type = new entity("IfcSlabElementedCase", false, 1030, IFC4X3_RC3_IfcSlab_type); - IFC4X3_RC3_IfcSlabStandardCase_type = new entity("IfcSlabStandardCase", false, 1031, IFC4X3_RC3_IfcSlab_type); - IFC4X3_RC3_IfcSolarDevice_type = new entity("IfcSolarDevice", false, 1035, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcSpaceHeater_type = new entity("IfcSpaceHeater", false, 1048, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcStackTerminal_type = new entity("IfcStackTerminal", false, 1068, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcStair_type = new entity("IfcStair", false, 1071, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcStairFlight_type = new entity("IfcStairFlight", false, 1072, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcStructuralAnalysisModel_type = new entity("IfcStructuralAnalysisModel", false, 1081, IFC4X3_RC3_IfcSystem_type); - IFC4X3_RC3_IfcStructuralLoadCase_type = new entity("IfcStructuralLoadCase", false, 1094, IFC4X3_RC3_IfcStructuralLoadGroup_type); - IFC4X3_RC3_IfcStructuralPlanarAction_type = new entity("IfcStructuralPlanarAction", false, 1107, IFC4X3_RC3_IfcStructuralSurfaceAction_type); - IFC4X3_RC3_IfcSwitchingDevice_type = new entity("IfcSwitchingDevice", false, 1149, IFC4X3_RC3_IfcFlowController_type); - IFC4X3_RC3_IfcTank_type = new entity("IfcTank", false, 1159, IFC4X3_RC3_IfcFlowStorageDevice_type); - IFC4X3_RC3_IfcTrackElement_type = new entity("IfcTrackElement", false, 1219, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcTransformer_type = new entity("IfcTransformer", false, 1222, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcTubeBundle_type = new entity("IfcTubeBundle", false, 1239, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcUnitaryControlElementType_type = new entity("IfcUnitaryControlElementType", false, 1248, IFC4X3_RC3_IfcDistributionControlElementType_type); - IFC4X3_RC3_IfcUnitaryEquipment_type = new entity("IfcUnitaryEquipment", false, 1250, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcValve_type = new entity("IfcValve", false, 1258, IFC4X3_RC3_IfcFlowController_type); - IFC4X3_RC3_IfcWall_type = new entity("IfcWall", false, 1281, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcWallElementedCase_type = new entity("IfcWallElementedCase", false, 1282, IFC4X3_RC3_IfcWall_type); - IFC4X3_RC3_IfcWallStandardCase_type = new entity("IfcWallStandardCase", false, 1283, IFC4X3_RC3_IfcWall_type); - IFC4X3_RC3_IfcWasteTerminal_type = new entity("IfcWasteTerminal", false, 1289, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcWindow_type = new entity("IfcWindow", false, 1293, IFC4X3_RC3_IfcBuiltElement_type); - IFC4X3_RC3_IfcWindowStandardCase_type = new entity("IfcWindowStandardCase", false, 1298, IFC4X3_RC3_IfcWindow_type); + IFC4X3_RC3_IfcDiscreteAccessory_type = new entity("IfcDiscreteAccessory", false, 312, IFC4X3_RC3_IfcElementComponent_type); + IFC4X3_RC3_IfcDiscreteAccessoryType_type = new entity("IfcDiscreteAccessoryType", false, 313, IFC4X3_RC3_IfcElementComponentType_type); + IFC4X3_RC3_IfcDistributionBoardType_type = new entity("IfcDistributionBoardType", false, 316, IFC4X3_RC3_IfcFlowControllerType_type); + IFC4X3_RC3_IfcDistributionChamberElementType_type = new entity("IfcDistributionChamberElementType", false, 319, IFC4X3_RC3_IfcDistributionFlowElementType_type); + IFC4X3_RC3_IfcDistributionControlElementType_type = new entity("IfcDistributionControlElementType", true, 323, IFC4X3_RC3_IfcDistributionElementType_type); + IFC4X3_RC3_IfcDistributionElement_type = new entity("IfcDistributionElement", false, 324, IFC4X3_RC3_IfcElement_type); + IFC4X3_RC3_IfcDistributionFlowElement_type = new entity("IfcDistributionFlowElement", false, 326, IFC4X3_RC3_IfcDistributionElement_type); + IFC4X3_RC3_IfcDistributionPort_type = new entity("IfcDistributionPort", false, 328, IFC4X3_RC3_IfcPort_type); + IFC4X3_RC3_IfcDistributionSystem_type = new entity("IfcDistributionSystem", false, 330, IFC4X3_RC3_IfcSystem_type); + IFC4X3_RC3_IfcDoor_type = new entity("IfcDoor", false, 338, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcDoorStandardCase_type = new entity("IfcDoorStandardCase", false, 343, IFC4X3_RC3_IfcDoor_type); + IFC4X3_RC3_IfcDuctFittingType_type = new entity("IfcDuctFittingType", false, 354, IFC4X3_RC3_IfcFlowFittingType_type); + IFC4X3_RC3_IfcDuctSegmentType_type = new entity("IfcDuctSegmentType", false, 357, IFC4X3_RC3_IfcFlowSegmentType_type); + IFC4X3_RC3_IfcDuctSilencerType_type = new entity("IfcDuctSilencerType", false, 360, IFC4X3_RC3_IfcFlowTreatmentDeviceType_type); + IFC4X3_RC3_IfcEarthworksCut_type = new entity("IfcEarthworksCut", false, 364, IFC4X3_RC3_IfcFeatureElementSubtraction_type); + IFC4X3_RC3_IfcEarthworksElement_type = new entity("IfcEarthworksElement", false, 366, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcEarthworksFill_type = new entity("IfcEarthworksFill", false, 367, IFC4X3_RC3_IfcEarthworksElement_type); + IFC4X3_RC3_IfcElectricApplianceType_type = new entity("IfcElectricApplianceType", false, 373, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcElectricDistributionBoardType_type = new entity("IfcElectricDistributionBoardType", false, 380, IFC4X3_RC3_IfcFlowControllerType_type); + IFC4X3_RC3_IfcElectricFlowStorageDeviceType_type = new entity("IfcElectricFlowStorageDeviceType", false, 383, IFC4X3_RC3_IfcFlowStorageDeviceType_type); + IFC4X3_RC3_IfcElectricFlowTreatmentDeviceType_type = new entity("IfcElectricFlowTreatmentDeviceType", false, 386, IFC4X3_RC3_IfcFlowTreatmentDeviceType_type); + IFC4X3_RC3_IfcElectricGeneratorType_type = new entity("IfcElectricGeneratorType", false, 389, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcElectricMotorType_type = new entity("IfcElectricMotorType", false, 392, IFC4X3_RC3_IfcEnergyConversionDeviceType_type); + IFC4X3_RC3_IfcElectricTimeControlType_type = new entity("IfcElectricTimeControlType", false, 396, IFC4X3_RC3_IfcFlowControllerType_type); + IFC4X3_RC3_IfcEnergyConversionDevice_type = new entity("IfcEnergyConversionDevice", false, 411, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcEngine_type = new entity("IfcEngine", false, 414, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcEvaporativeCooler_type = new entity("IfcEvaporativeCooler", false, 417, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcEvaporator_type = new entity("IfcEvaporator", false, 420, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcExternalSpatialElement_type = new entity("IfcExternalSpatialElement", false, 435, IFC4X3_RC3_IfcExternalSpatialStructureElement_type); + IFC4X3_RC3_IfcFanType_type = new entity("IfcFanType", false, 454, IFC4X3_RC3_IfcFlowMovingDeviceType_type); + IFC4X3_RC3_IfcFilterType_type = new entity("IfcFilterType", false, 467, IFC4X3_RC3_IfcFlowTreatmentDeviceType_type); + IFC4X3_RC3_IfcFireSuppressionTerminalType_type = new entity("IfcFireSuppressionTerminalType", false, 470, IFC4X3_RC3_IfcFlowTerminalType_type); + IFC4X3_RC3_IfcFlowController_type = new entity("IfcFlowController", false, 473, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcFlowFitting_type = new entity("IfcFlowFitting", false, 476, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcFlowInstrumentType_type = new entity("IfcFlowInstrumentType", false, 479, IFC4X3_RC3_IfcDistributionControlElementType_type); + IFC4X3_RC3_IfcFlowMeter_type = new entity("IfcFlowMeter", false, 481, IFC4X3_RC3_IfcFlowController_type); + IFC4X3_RC3_IfcFlowMovingDevice_type = new entity("IfcFlowMovingDevice", false, 484, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcFlowSegment_type = new entity("IfcFlowSegment", false, 486, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcFlowStorageDevice_type = new entity("IfcFlowStorageDevice", false, 488, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcFlowTerminal_type = new entity("IfcFlowTerminal", false, 490, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcFlowTreatmentDevice_type = new entity("IfcFlowTreatmentDevice", false, 492, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcFooting_type = new entity("IfcFooting", false, 497, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcGeotechnicalAssembly_type = new entity("IfcGeotechnicalAssembly", true, 519, IFC4X3_RC3_IfcGeotechnicalElement_type); + IFC4X3_RC3_IfcGrid_type = new entity("IfcGrid", false, 525, IFC4X3_RC3_IfcPositioningElement_type); + IFC4X3_RC3_IfcHeatExchanger_type = new entity("IfcHeatExchanger", false, 533, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcHumidifier_type = new entity("IfcHumidifier", false, 538, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcInterceptor_type = new entity("IfcInterceptor", false, 558, IFC4X3_RC3_IfcFlowTreatmentDevice_type); + IFC4X3_RC3_IfcJunctionBox_type = new entity("IfcJunctionBox", false, 571, IFC4X3_RC3_IfcFlowFitting_type); + IFC4X3_RC3_IfcKerb_type = new entity("IfcKerb", false, 574, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcLamp_type = new entity("IfcLamp", false, 583, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcLightFixture_type = new entity("IfcLightFixture", false, 597, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcLinearPositioningElement_type = new entity("IfcLinearPositioningElement", false, 612, IFC4X3_RC3_IfcPositioningElement_type); + IFC4X3_RC3_IfcLiquidTerminal_type = new entity("IfcLiquidTerminal", false, 616, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcMedicalDevice_type = new entity("IfcMedicalDevice", false, 665, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcMember_type = new entity("IfcMember", false, 668, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcMemberStandardCase_type = new entity("IfcMemberStandardCase", false, 669, IFC4X3_RC3_IfcMember_type); + IFC4X3_RC3_IfcMobileTelecommunicationsAppliance_type = new entity("IfcMobileTelecommunicationsAppliance", false, 675, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcMooringDevice_type = new entity("IfcMooringDevice", false, 691, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcMotorConnection_type = new entity("IfcMotorConnection", false, 694, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcNavigationElement_type = new entity("IfcNavigationElement", false, 698, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcOuterBoundaryCurve_type = new entity("IfcOuterBoundaryCurve", false, 725, IFC4X3_RC3_IfcBoundaryCurve_type); + IFC4X3_RC3_IfcOutlet_type = new entity("IfcOutlet", false, 726, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcPavement_type = new entity("IfcPavement", false, 733, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcPile_type = new entity("IfcPile", false, 750, IFC4X3_RC3_IfcDeepFoundation_type); + IFC4X3_RC3_IfcPipeFitting_type = new entity("IfcPipeFitting", false, 754, IFC4X3_RC3_IfcFlowFitting_type); + IFC4X3_RC3_IfcPipeSegment_type = new entity("IfcPipeSegment", false, 757, IFC4X3_RC3_IfcFlowSegment_type); + IFC4X3_RC3_IfcPlate_type = new entity("IfcPlate", false, 768, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcPlateStandardCase_type = new entity("IfcPlateStandardCase", false, 769, IFC4X3_RC3_IfcPlate_type); + IFC4X3_RC3_IfcProtectiveDevice_type = new entity("IfcProtectiveDevice", false, 843, IFC4X3_RC3_IfcFlowController_type); + IFC4X3_RC3_IfcProtectiveDeviceTrippingUnitType_type = new entity("IfcProtectiveDeviceTrippingUnitType", false, 845, IFC4X3_RC3_IfcDistributionControlElementType_type); + IFC4X3_RC3_IfcPump_type = new entity("IfcPump", false, 850, IFC4X3_RC3_IfcFlowMovingDevice_type); + IFC4X3_RC3_IfcRail_type = new entity("IfcRail", false, 861, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcRailing_type = new entity("IfcRailing", false, 862, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcRamp_type = new entity("IfcRamp", false, 870, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcRampFlight_type = new entity("IfcRampFlight", false, 871, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcRationalBSplineCurveWithKnots_type = new entity("IfcRationalBSplineCurveWithKnots", false, 877, IFC4X3_RC3_IfcBSplineCurveWithKnots_type); + IFC4X3_RC3_IfcReinforcedSoil_type = new entity("IfcReinforcedSoil", false, 891, IFC4X3_RC3_IfcEarthworksElement_type); + IFC4X3_RC3_IfcReinforcingBar_type = new entity("IfcReinforcingBar", false, 895, IFC4X3_RC3_IfcReinforcingElement_type); + IFC4X3_RC3_IfcReinforcingBarType_type = new entity("IfcReinforcingBarType", false, 898, IFC4X3_RC3_IfcReinforcingElementType_type); + IFC4X3_RC3_IfcRoof_type = new entity("IfcRoof", false, 975, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcSanitaryTerminal_type = new entity("IfcSanitaryTerminal", false, 984, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcSensorType_type = new entity("IfcSensorType", false, 1003, IFC4X3_RC3_IfcDistributionControlElementType_type); + IFC4X3_RC3_IfcShadingDevice_type = new entity("IfcShadingDevice", false, 1006, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcSignal_type = new entity("IfcSignal", false, 1016, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcSlab_type = new entity("IfcSlab", false, 1031, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcSlabElementedCase_type = new entity("IfcSlabElementedCase", false, 1032, IFC4X3_RC3_IfcSlab_type); + IFC4X3_RC3_IfcSlabStandardCase_type = new entity("IfcSlabStandardCase", false, 1033, IFC4X3_RC3_IfcSlab_type); + IFC4X3_RC3_IfcSolarDevice_type = new entity("IfcSolarDevice", false, 1037, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcSpaceHeater_type = new entity("IfcSpaceHeater", false, 1050, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcStackTerminal_type = new entity("IfcStackTerminal", false, 1070, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcStair_type = new entity("IfcStair", false, 1073, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcStairFlight_type = new entity("IfcStairFlight", false, 1074, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcStructuralAnalysisModel_type = new entity("IfcStructuralAnalysisModel", false, 1083, IFC4X3_RC3_IfcSystem_type); + IFC4X3_RC3_IfcStructuralLoadCase_type = new entity("IfcStructuralLoadCase", false, 1096, IFC4X3_RC3_IfcStructuralLoadGroup_type); + IFC4X3_RC3_IfcStructuralPlanarAction_type = new entity("IfcStructuralPlanarAction", false, 1109, IFC4X3_RC3_IfcStructuralSurfaceAction_type); + IFC4X3_RC3_IfcSwitchingDevice_type = new entity("IfcSwitchingDevice", false, 1151, IFC4X3_RC3_IfcFlowController_type); + IFC4X3_RC3_IfcTank_type = new entity("IfcTank", false, 1161, IFC4X3_RC3_IfcFlowStorageDevice_type); + IFC4X3_RC3_IfcTrackElement_type = new entity("IfcTrackElement", false, 1221, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcTransformer_type = new entity("IfcTransformer", false, 1224, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcTubeBundle_type = new entity("IfcTubeBundle", false, 1241, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcUnitaryControlElementType_type = new entity("IfcUnitaryControlElementType", false, 1250, IFC4X3_RC3_IfcDistributionControlElementType_type); + IFC4X3_RC3_IfcUnitaryEquipment_type = new entity("IfcUnitaryEquipment", false, 1252, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcValve_type = new entity("IfcValve", false, 1260, IFC4X3_RC3_IfcFlowController_type); + IFC4X3_RC3_IfcWall_type = new entity("IfcWall", false, 1283, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcWallElementedCase_type = new entity("IfcWallElementedCase", false, 1284, IFC4X3_RC3_IfcWall_type); + IFC4X3_RC3_IfcWallStandardCase_type = new entity("IfcWallStandardCase", false, 1285, IFC4X3_RC3_IfcWall_type); + IFC4X3_RC3_IfcWasteTerminal_type = new entity("IfcWasteTerminal", false, 1291, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcWindow_type = new entity("IfcWindow", false, 1295, IFC4X3_RC3_IfcBuiltElement_type); + IFC4X3_RC3_IfcWindowStandardCase_type = new entity("IfcWindowStandardCase", false, 1300, IFC4X3_RC3_IfcWindow_type); { std::vector items; items.reserve(2); items.push_back(IFC4X3_RC3_IfcExternalSpatialElement_type); items.push_back(IFC4X3_RC3_IfcSpace_type); - IFC4X3_RC3_IfcSpaceBoundarySelect_type = new select_type("IfcSpaceBoundarySelect", 1047, items); + IFC4X3_RC3_IfcSpaceBoundarySelect_type = new select_type("IfcSpaceBoundarySelect", 1049, items); } IFC4X3_RC3_IfcActuatorType_type = new entity("IfcActuatorType", false, 10, IFC4X3_RC3_IfcDistributionControlElementType_type); IFC4X3_RC3_IfcAirTerminal_type = new entity("IfcAirTerminal", false, 17, IFC4X3_RC3_IfcFlowTerminal_type); @@ -7205,29 +7243,29 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcCooledBeam_type = new entity("IfcCooledBeam", false, 239, IFC4X3_RC3_IfcEnergyConversionDevice_type); IFC4X3_RC3_IfcCoolingTower_type = new entity("IfcCoolingTower", false, 242, IFC4X3_RC3_IfcEnergyConversionDevice_type); IFC4X3_RC3_IfcDamper_type = new entity("IfcDamper", false, 288, IFC4X3_RC3_IfcFlowController_type); - IFC4X3_RC3_IfcDistributionBoard_type = new entity("IfcDistributionBoard", false, 314, IFC4X3_RC3_IfcFlowController_type); - IFC4X3_RC3_IfcDistributionChamberElement_type = new entity("IfcDistributionChamberElement", false, 317, IFC4X3_RC3_IfcDistributionFlowElement_type); - IFC4X3_RC3_IfcDistributionCircuit_type = new entity("IfcDistributionCircuit", false, 320, IFC4X3_RC3_IfcDistributionSystem_type); - IFC4X3_RC3_IfcDistributionControlElement_type = new entity("IfcDistributionControlElement", false, 321, IFC4X3_RC3_IfcDistributionElement_type); - IFC4X3_RC3_IfcDuctFitting_type = new entity("IfcDuctFitting", false, 352, IFC4X3_RC3_IfcFlowFitting_type); - IFC4X3_RC3_IfcDuctSegment_type = new entity("IfcDuctSegment", false, 355, IFC4X3_RC3_IfcFlowSegment_type); - IFC4X3_RC3_IfcDuctSilencer_type = new entity("IfcDuctSilencer", false, 358, IFC4X3_RC3_IfcFlowTreatmentDevice_type); - IFC4X3_RC3_IfcElectricAppliance_type = new entity("IfcElectricAppliance", false, 371, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcElectricDistributionBoard_type = new entity("IfcElectricDistributionBoard", false, 378, IFC4X3_RC3_IfcFlowController_type); - IFC4X3_RC3_IfcElectricFlowStorageDevice_type = new entity("IfcElectricFlowStorageDevice", false, 381, IFC4X3_RC3_IfcFlowStorageDevice_type); - IFC4X3_RC3_IfcElectricFlowTreatmentDevice_type = new entity("IfcElectricFlowTreatmentDevice", false, 384, IFC4X3_RC3_IfcFlowTreatmentDevice_type); - IFC4X3_RC3_IfcElectricGenerator_type = new entity("IfcElectricGenerator", false, 387, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcElectricMotor_type = new entity("IfcElectricMotor", false, 390, IFC4X3_RC3_IfcEnergyConversionDevice_type); - IFC4X3_RC3_IfcElectricTimeControl_type = new entity("IfcElectricTimeControl", false, 394, IFC4X3_RC3_IfcFlowController_type); - IFC4X3_RC3_IfcFan_type = new entity("IfcFan", false, 452, IFC4X3_RC3_IfcFlowMovingDevice_type); - IFC4X3_RC3_IfcFilter_type = new entity("IfcFilter", false, 465, IFC4X3_RC3_IfcFlowTreatmentDevice_type); - IFC4X3_RC3_IfcFireSuppressionTerminal_type = new entity("IfcFireSuppressionTerminal", false, 468, IFC4X3_RC3_IfcFlowTerminal_type); - IFC4X3_RC3_IfcFlowInstrument_type = new entity("IfcFlowInstrument", false, 477, IFC4X3_RC3_IfcDistributionControlElement_type); - IFC4X3_RC3_IfcGeomodel_type = new entity("IfcGeomodel", false, 516, IFC4X3_RC3_IfcGeotechnicalAssembly_type); - IFC4X3_RC3_IfcGeoslice_type = new entity("IfcGeoslice", false, 517, IFC4X3_RC3_IfcGeotechnicalAssembly_type); - IFC4X3_RC3_IfcProtectiveDeviceTrippingUnit_type = new entity("IfcProtectiveDeviceTrippingUnit", false, 842, IFC4X3_RC3_IfcDistributionControlElement_type); - IFC4X3_RC3_IfcSensor_type = new entity("IfcSensor", false, 1000, IFC4X3_RC3_IfcDistributionControlElement_type); - IFC4X3_RC3_IfcUnitaryControlElement_type = new entity("IfcUnitaryControlElement", false, 1247, IFC4X3_RC3_IfcDistributionControlElement_type); + IFC4X3_RC3_IfcDistributionBoard_type = new entity("IfcDistributionBoard", false, 315, IFC4X3_RC3_IfcFlowController_type); + IFC4X3_RC3_IfcDistributionChamberElement_type = new entity("IfcDistributionChamberElement", false, 318, IFC4X3_RC3_IfcDistributionFlowElement_type); + IFC4X3_RC3_IfcDistributionCircuit_type = new entity("IfcDistributionCircuit", false, 321, IFC4X3_RC3_IfcDistributionSystem_type); + IFC4X3_RC3_IfcDistributionControlElement_type = new entity("IfcDistributionControlElement", false, 322, IFC4X3_RC3_IfcDistributionElement_type); + IFC4X3_RC3_IfcDuctFitting_type = new entity("IfcDuctFitting", false, 353, IFC4X3_RC3_IfcFlowFitting_type); + IFC4X3_RC3_IfcDuctSegment_type = new entity("IfcDuctSegment", false, 356, IFC4X3_RC3_IfcFlowSegment_type); + IFC4X3_RC3_IfcDuctSilencer_type = new entity("IfcDuctSilencer", false, 359, IFC4X3_RC3_IfcFlowTreatmentDevice_type); + IFC4X3_RC3_IfcElectricAppliance_type = new entity("IfcElectricAppliance", false, 372, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcElectricDistributionBoard_type = new entity("IfcElectricDistributionBoard", false, 379, IFC4X3_RC3_IfcFlowController_type); + IFC4X3_RC3_IfcElectricFlowStorageDevice_type = new entity("IfcElectricFlowStorageDevice", false, 382, IFC4X3_RC3_IfcFlowStorageDevice_type); + IFC4X3_RC3_IfcElectricFlowTreatmentDevice_type = new entity("IfcElectricFlowTreatmentDevice", false, 385, IFC4X3_RC3_IfcFlowTreatmentDevice_type); + IFC4X3_RC3_IfcElectricGenerator_type = new entity("IfcElectricGenerator", false, 388, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcElectricMotor_type = new entity("IfcElectricMotor", false, 391, IFC4X3_RC3_IfcEnergyConversionDevice_type); + IFC4X3_RC3_IfcElectricTimeControl_type = new entity("IfcElectricTimeControl", false, 395, IFC4X3_RC3_IfcFlowController_type); + IFC4X3_RC3_IfcFan_type = new entity("IfcFan", false, 453, IFC4X3_RC3_IfcFlowMovingDevice_type); + IFC4X3_RC3_IfcFilter_type = new entity("IfcFilter", false, 466, IFC4X3_RC3_IfcFlowTreatmentDevice_type); + IFC4X3_RC3_IfcFireSuppressionTerminal_type = new entity("IfcFireSuppressionTerminal", false, 469, IFC4X3_RC3_IfcFlowTerminal_type); + IFC4X3_RC3_IfcFlowInstrument_type = new entity("IfcFlowInstrument", false, 478, IFC4X3_RC3_IfcDistributionControlElement_type); + IFC4X3_RC3_IfcGeomodel_type = new entity("IfcGeomodel", false, 517, IFC4X3_RC3_IfcGeotechnicalAssembly_type); + IFC4X3_RC3_IfcGeoslice_type = new entity("IfcGeoslice", false, 518, IFC4X3_RC3_IfcGeotechnicalAssembly_type); + IFC4X3_RC3_IfcProtectiveDeviceTrippingUnit_type = new entity("IfcProtectiveDeviceTrippingUnit", false, 844, IFC4X3_RC3_IfcDistributionControlElement_type); + IFC4X3_RC3_IfcSensor_type = new entity("IfcSensor", false, 1002, IFC4X3_RC3_IfcDistributionControlElement_type); + IFC4X3_RC3_IfcUnitaryControlElement_type = new entity("IfcUnitaryControlElement", false, 1249, IFC4X3_RC3_IfcDistributionControlElement_type); IFC4X3_RC3_IfcActuator_type = new entity("IfcActuator", false, 9, IFC4X3_RC3_IfcDistributionControlElement_type); IFC4X3_RC3_IfcAlarm_type = new entity("IfcAlarm", false, 26, IFC4X3_RC3_IfcDistributionControlElement_type); IFC4X3_RC3_IfcController_type = new entity("IfcController", false, 231, IFC4X3_RC3_IfcDistributionControlElement_type); @@ -7369,24 +7407,22 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcAlignmentCant_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(8); + std::vector attributes; attributes.reserve(7); attributes.push_back(new attribute("StartDistAlong", new named_type(IFC4X3_RC3_IfcLengthMeasure_type), false)); attributes.push_back(new attribute("HorizontalLength", new named_type(IFC4X3_RC3_IfcPositiveLengthMeasure_type), false)); attributes.push_back(new attribute("StartCantLeft", new named_type(IFC4X3_RC3_IfcLengthMeasure_type), false)); attributes.push_back(new attribute("EndCantLeft", new named_type(IFC4X3_RC3_IfcLengthMeasure_type), true)); attributes.push_back(new attribute("StartCantRight", new named_type(IFC4X3_RC3_IfcLengthMeasure_type), false)); attributes.push_back(new attribute("EndCantRight", new named_type(IFC4X3_RC3_IfcLengthMeasure_type), true)); - attributes.push_back(new attribute("SmoothingLength", new named_type(IFC4X3_RC3_IfcPositiveLengthMeasure_type), true)); attributes.push_back(new attribute("PredefinedType", new named_type(IFC4X3_RC3_IfcAlignmentCantSegmentTypeEnum_type), false)); - std::vector derived; derived.reserve(10); - derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(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); IFC4X3_RC3_IfcAlignmentCantSegment_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(1); - attributes.push_back(new attribute("StartDistAlong", new named_type(IFC4X3_RC3_IfcLengthMeasure_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); + 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); IFC4X3_RC3_IfcAlignmentHorizontal_type->set_attributes(attributes, derived); } { @@ -8818,6 +8854,12 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type->set_attributes(attributes, derived); } + { + 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); + IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type->set_attributes(attributes, derived); + } { std::vector attributes; attributes.reserve(3); attributes.push_back(new attribute("Directrix", new named_type(IFC4X3_RC3_IfcCurve_type), false)); @@ -10859,14 +10901,14 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { } { std::vector attributes; attributes.reserve(1); - attributes.push_back(new attribute("Flexible", new named_type(IFC4X3_RC3_IfcBoolean_type), true)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4X3_RC3_IfcPavementTypeEnum_type), true)); std::vector derived; derived.reserve(9); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4X3_RC3_IfcPavement_type->set_attributes(attributes, derived); } { std::vector attributes; attributes.reserve(1); - attributes.push_back(new attribute("Flexible", new named_type(IFC4X3_RC3_IfcBoolean_type), false)); + attributes.push_back(new attribute("PredefinedType", new named_type(IFC4X3_RC3_IfcPavementTypeEnum_type), false)); std::vector derived; derived.reserve(10); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); derived.push_back(false); IFC4X3_RC3_IfcPavementType_type->set_attributes(attributes, derived); @@ -12444,7 +12486,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { } { std::vector attributes; attributes.reserve(2); - attributes.push_back(new attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X3_RC3_IfcCurveMeasureSelect_type)), false)); + attributes.push_back(new attribute("CrossSectionPositions", new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X3_RC3_IfcAxis2PlacementLinear_type)), false)); attributes.push_back(new attribute("FixedAxisVertical", new named_type(IFC4X3_RC3_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); @@ -13600,12 +13642,13 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcTextureVertexList_type->set_attributes(attributes, derived); } { - std::vector attributes; attributes.reserve(3); + std::vector attributes; attributes.reserve(4); attributes.push_back(new attribute("QubicTerm", new named_type(IFC4X3_RC3_IfcLengthMeasure_type), false)); attributes.push_back(new attribute("QuadraticTerm", new named_type(IFC4X3_RC3_IfcLengthMeasure_type), true)); attributes.push_back(new attribute("LinearTerm", new named_type(IFC4X3_RC3_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); + attributes.push_back(new attribute("ConstantTerm", new named_type(IFC4X3_RC3_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); IFC4X3_RC3_IfcThirdOrderPolynomialSpiral_type->set_attributes(attributes, derived); } { @@ -15054,6 +15097,11 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { defs.push_back(IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type);defs.push_back(IFC4X3_RC3_IfcDirectrixDistanceSweptAreaSolid_type);defs.push_back(IFC4X3_RC3_IfcExtrudedAreaSolid_type);defs.push_back(IFC4X3_RC3_IfcRevolvedAreaSolid_type); IFC4X3_RC3_IfcSweptAreaSolid_type->set_subtypes(defs); } + { + std::vector defs; defs.reserve(1); + defs.push_back(IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type); + IFC4X3_RC3_IfcFixedReferenceSweptAreaSolid_type->set_subtypes(defs); + } { std::vector defs; defs.reserve(9); defs.push_back(IFC4X3_RC3_IfcDistributionChamberElement_type);defs.push_back(IFC4X3_RC3_IfcEnergyConversionDevice_type);defs.push_back(IFC4X3_RC3_IfcFlowController_type);defs.push_back(IFC4X3_RC3_IfcFlowFitting_type);defs.push_back(IFC4X3_RC3_IfcFlowMovingDevice_type);defs.push_back(IFC4X3_RC3_IfcFlowSegment_type);defs.push_back(IFC4X3_RC3_IfcFlowStorageDevice_type);defs.push_back(IFC4X3_RC3_IfcFlowTerminal_type);defs.push_back(IFC4X3_RC3_IfcFlowTreatmentDevice_type); @@ -15745,7 +15793,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { IFC4X3_RC3_IfcWorkControl_type->set_subtypes(defs); } - std::vector declarations; declarations.reserve(1315); + std::vector declarations; declarations.reserve(1317); declarations.push_back(IFC4X3_RC3_IfcAbsorbedDoseMeasure_type); declarations.push_back(IFC4X3_RC3_IfcAccelerationMeasure_type); declarations.push_back(IFC4X3_RC3_IfcActionRequest_type); @@ -16056,6 +16104,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { declarations.push_back(IFC4X3_RC3_IfcDirection_type); declarations.push_back(IFC4X3_RC3_IfcDirectionSenseEnum_type); declarations.push_back(IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type); + declarations.push_back(IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type); declarations.push_back(IFC4X3_RC3_IfcDirectrixDistanceSweptAreaSolid_type); declarations.push_back(IFC4X3_RC3_IfcDiscreteAccessory_type); declarations.push_back(IFC4X3_RC3_IfcDiscreteAccessoryType_type); @@ -16480,6 +16529,7 @@ IfcParse::schema_definition* IFC4X3_RC3_populate_schema() { declarations.push_back(IFC4X3_RC3_IfcPath_type); declarations.push_back(IFC4X3_RC3_IfcPavement_type); declarations.push_back(IFC4X3_RC3_IfcPavementType_type); + declarations.push_back(IFC4X3_RC3_IfcPavementTypeEnum_type); declarations.push_back(IFC4X3_RC3_IfcPcurve_type); declarations.push_back(IFC4X3_RC3_IfcPerformanceHistory_type); declarations.push_back(IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type); diff --git a/src/ifcparse/Ifc4x3_rc3.cpp b/src/ifcparse/Ifc4x3_rc3.cpp index 2498ee9724..17b517d3da 100644 --- a/src/ifcparse/Ifc4x3_rc3.cpp +++ b/src/ifcparse/Ifc4x3_rc3.cpp @@ -1,3 +1,28 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +/******************************************************************************** + * * + * This file has been generated from IFC4x3_RC2.exp. Do not make modifications * + * but instead modify the python script that has been used to generate this. * + * * + ********************************************************************************/ #include "../ifcparse/Ifc4x3_rc3.h" #include "../ifcparse/IfcSchema.h" @@ -214,6 +239,7 @@ extern entity* IFC4X3_RC3_IfcDerivedUnitElement_type; extern entity* IFC4X3_RC3_IfcDimensionalExponents_type; extern entity* IFC4X3_RC3_IfcDirection_type; extern entity* IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type; +extern entity* IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type; extern entity* IFC4X3_RC3_IfcDirectrixDistanceSweptAreaSolid_type; extern entity* IFC4X3_RC3_IfcDiscreteAccessory_type; extern entity* IFC4X3_RC3_IfcDiscreteAccessoryType_type; @@ -1165,6 +1191,7 @@ extern enumeration_type* IFC4X3_RC3_IfcObjectiveEnum_type; extern enumeration_type* IFC4X3_RC3_IfcOccupantTypeEnum_type; extern enumeration_type* IFC4X3_RC3_IfcOpeningElementTypeEnum_type; extern enumeration_type* IFC4X3_RC3_IfcOutletTypeEnum_type; +extern enumeration_type* IFC4X3_RC3_IfcPavementTypeEnum_type; extern enumeration_type* IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type; extern enumeration_type* IFC4X3_RC3_IfcPermeableCoveringOperationEnum_type; extern enumeration_type* IFC4X3_RC3_IfcPermitTypeEnum_type; @@ -1273,12 +1300,14 @@ Ifc4x3_rc3::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcActionRequestTypeEnum::IfcActionRequestTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcActionRequestTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1313,12 +1342,14 @@ Ifc4x3_rc3::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcActionSourceTypeEnum::IfcActionSourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcActionSourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1373,12 +1404,14 @@ Ifc4x3_rc3::IfcActionTypeEnum::IfcActionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcActionTypeEnum::IfcActionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcActionTypeEnum::IfcActionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcActionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1411,12 +1444,14 @@ Ifc4x3_rc3::IfcActuatorTypeEnum::IfcActuatorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcActuatorTypeEnum::IfcActuatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcActuatorTypeEnum::IfcActuatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcActuatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1451,12 +1486,14 @@ Ifc4x3_rc3::IfcAddressTypeEnum::IfcAddressTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcAddressTypeEnum::IfcAddressTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAddressTypeEnum::IfcAddressTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAddressTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1489,12 +1526,14 @@ Ifc4x3_rc3::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAirTerminalBoxTypeEnum::IfcAirTerminalBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAirTerminalBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1527,12 +1566,14 @@ Ifc4x3_rc3::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAirTerminalTypeEnum::IfcAirTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAirTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1566,12 +1607,14 @@ Ifc4x3_rc3::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Ifc } Ifc4x3_rc3::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAirToAirHeatRecoveryTypeEnum::IfcAirToAirHeatRecoveryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAirToAirHeatRecoveryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1610,12 +1653,14 @@ Ifc4x3_rc3::IfcAlarmTypeEnum::IfcAlarmTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcAlarmTypeEnum::IfcAlarmTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAlarmTypeEnum::IfcAlarmTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlarmTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1653,12 +1698,14 @@ Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentTypeEnum(Ifc } Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentCantSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentCantSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1666,14 +1713,14 @@ Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentTypeEnum(con const char* Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::ToString(Value v) { if ( v < 0 || v >= 7 ) throw IfcException("Unable to find find keyword in schema"); - const char* names[] = { "CONSTANTCANT", "LINEARTRANSITION", "BIQUADRATICPARABOLA", "BLOSSCURVE", "COSINECURVE", "SINECURVE", "VIENNESEBEND" }; + const char* names[] = { "CONSTANTCANT", "LINEARTRANSITION", "HELMERTCURVE", "BLOSSCURVE", "COSINECURVE", "SINECURVE", "VIENNESEBEND" }; return names[v]; } Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::FromString(const std::string& s) { if (s == "CONSTANTCANT") return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentType_CONSTANTCANT; if (s == "LINEARTRANSITION") return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentType_LINEARTRANSITION; - if (s == "BIQUADRATICPARABOLA") return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentType_BIQUADRATICPARABOLA; + if (s == "HELMERTCURVE") return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentType_HELMERTCURVE; if (s == "BLOSSCURVE") return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentType_BLOSSCURVE; if (s == "COSINECURVE") return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentType_COSINECURVE; if (s == "SINECURVE") return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::IfcAlignmentCantSegmentType_SINECURVE; @@ -1693,12 +1740,14 @@ Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegment } Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentHorizontalSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentHorizontalSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1706,7 +1755,7 @@ Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegment const char* Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::ToString(Value v) { if ( v < 0 || v >= 10 ) throw IfcException("Unable to find find keyword in schema"); - const char* names[] = { "LINE", "CIRCULARARC", "CLOTHOID", "CUBIC", "BIQUADRATICPARABOLA", "BLOSSCURVE", "CUBICSPIRAL", "COSINECURVE", "SINECURVE", "VIENNESEBEND" }; + const char* names[] = { "LINE", "CIRCULARARC", "CLOTHOID", "CUBIC", "HELMERTCURVE", "BLOSSCURVE", "CUBICSPIRAL", "COSINECURVE", "SINECURVE", "VIENNESEBEND" }; return names[v]; } @@ -1715,7 +1764,7 @@ Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::Value Ifc4x3_rc3::IfcAlignmen if (s == "CIRCULARARC") return ::Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentType_CIRCULARARC; if (s == "CLOTHOID") return ::Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentType_CLOTHOID; if (s == "CUBIC") return ::Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentType_CUBIC; - if (s == "BIQUADRATICPARABOLA") return ::Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentType_BIQUADRATICPARABOLA; + if (s == "HELMERTCURVE") return ::Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentType_HELMERTCURVE; if (s == "BLOSSCURVE") return ::Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentType_BLOSSCURVE; if (s == "CUBICSPIRAL") return ::Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentType_CUBICSPIRAL; if (s == "COSINECURVE") return ::Ifc4x3_rc3::IfcAlignmentHorizontalSegmentTypeEnum::IfcAlignmentHorizontalSegmentType_COSINECURVE; @@ -1736,12 +1785,14 @@ Ifc4x3_rc3::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAlignmentTypeEnum::IfcAlignmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1771,12 +1822,14 @@ Ifc4x3_rc3::IfcAlignmentVerticalSegmentTypeEnum::IfcAlignmentVerticalSegmentType } Ifc4x3_rc3::IfcAlignmentVerticalSegmentTypeEnum::IfcAlignmentVerticalSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentVerticalSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAlignmentVerticalSegmentTypeEnum::IfcAlignmentVerticalSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentVerticalSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1808,12 +1861,14 @@ Ifc4x3_rc3::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAnalysisModelTypeEnum::IfcAnalysisModelTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAnalysisModelTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1846,12 +1901,14 @@ Ifc4x3_rc3::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAnalysisTheoryTypeEnum::IfcAnalysisTheoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAnalysisTheoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1885,12 +1942,14 @@ Ifc4x3_rc3::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAnnotationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAnnotationTypeEnum::IfcAnnotationTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAnnotationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1929,12 +1988,14 @@ Ifc4x3_rc3::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(IfcEntityInstan } Ifc4x3_rc3::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcArithmeticOperatorEnum::IfcArithmeticOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcArithmeticOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -1966,12 +2027,14 @@ Ifc4x3_rc3::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAssemblyPlaceEnum::IfcAssemblyPlaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAssemblyPlaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2002,12 +2065,14 @@ Ifc4x3_rc3::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Ifc } Ifc4x3_rc3::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcAudioVisualApplianceTypeEnum::IfcAudioVisualApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAudioVisualApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2049,12 +2114,14 @@ Ifc4x3_rc3::IfcBSplineCurveForm::IfcBSplineCurveForm(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcBSplineCurveForm::IfcBSplineCurveForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBSplineCurveForm::IfcBSplineCurveForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBSplineCurveForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2088,12 +2155,14 @@ Ifc4x3_rc3::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(IfcEntityInstanceData* } Ifc4x3_rc3::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBSplineSurfaceForm::IfcBSplineSurfaceForm(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBSplineSurfaceForm_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2132,12 +2201,14 @@ Ifc4x3_rc3::IfcBeamTypeEnum::IfcBeamTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcBeamTypeEnum::IfcBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBeamTypeEnum::IfcBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2179,12 +2250,14 @@ Ifc4x3_rc3::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(IfcEn } Ifc4x3_rc3::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBearingTypeDisplacementEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBearingTypeDisplacementEnum::IfcBearingTypeDisplacementEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBearingTypeDisplacementEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2217,12 +2290,14 @@ Ifc4x3_rc3::IfcBearingTypeEnum::IfcBearingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcBearingTypeEnum::IfcBearingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBearingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBearingTypeEnum::IfcBearingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBearingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2260,12 +2335,14 @@ Ifc4x3_rc3::IfcBenchmarkEnum::IfcBenchmarkEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcBenchmarkEnum::IfcBenchmarkEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBenchmarkEnum::IfcBenchmarkEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBenchmarkEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2303,12 +2380,14 @@ Ifc4x3_rc3::IfcBoilerTypeEnum::IfcBoilerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcBoilerTypeEnum::IfcBoilerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBoilerTypeEnum::IfcBoilerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBoilerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2340,12 +2419,14 @@ Ifc4x3_rc3::IfcBooleanOperator::IfcBooleanOperator(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcBooleanOperator::IfcBooleanOperator(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBooleanOperator::IfcBooleanOperator(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBooleanOperator_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2376,12 +2457,14 @@ Ifc4x3_rc3::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBridgePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBridgePartTypeEnum::IfcBridgePartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBridgePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2421,12 +2504,14 @@ Ifc4x3_rc3::IfcBridgeTypeEnum::IfcBridgeTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcBridgeTypeEnum::IfcBridgeTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBridgeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBridgeTypeEnum::IfcBridgeTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBridgeTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2464,12 +2549,14 @@ Ifc4x3_rc3::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(IfcEn } Ifc4x3_rc3::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBuildingElementPartTypeEnum::IfcBuildingElementPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBuildingElementPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2504,12 +2591,14 @@ Ifc4x3_rc3::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Ifc } Ifc4x3_rc3::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBuildingElementProxyTypeEnum::IfcBuildingElementProxyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBuildingElementProxyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2544,12 +2633,14 @@ Ifc4x3_rc3::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBuildingSystemTypeEnum::IfcBuildingSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBuildingSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2588,12 +2679,14 @@ Ifc4x3_rc3::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBuiltSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBuiltSystemTypeEnum::IfcBuiltSystemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBuiltSystemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2635,12 +2728,14 @@ Ifc4x3_rc3::IfcBurnerTypeEnum::IfcBurnerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcBurnerTypeEnum::IfcBurnerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcBurnerTypeEnum::IfcBurnerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcBurnerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2670,12 +2765,14 @@ Ifc4x3_rc3::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(IfcEn } Ifc4x3_rc3::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCableCarrierFittingTypeEnum::IfcCableCarrierFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCableCarrierFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2709,12 +2806,14 @@ Ifc4x3_rc3::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(IfcEn } Ifc4x3_rc3::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCableCarrierSegmentTypeEnum::IfcCableCarrierSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCableCarrierSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2751,12 +2850,14 @@ Ifc4x3_rc3::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCableFittingTypeEnum::IfcCableFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCableFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2792,12 +2893,14 @@ Ifc4x3_rc3::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCableSegmentTypeEnum::IfcCableSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCableSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2837,12 +2940,14 @@ Ifc4x3_rc3::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(IfcEntity } Ifc4x3_rc3::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCaissonFoundationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCaissonFoundationTypeEnum::IfcCaissonFoundationTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCaissonFoundationTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2874,12 +2979,14 @@ Ifc4x3_rc3::IfcChangeActionEnum::IfcChangeActionEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcChangeActionEnum::IfcChangeActionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcChangeActionEnum::IfcChangeActionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcChangeActionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2912,12 +3019,14 @@ Ifc4x3_rc3::IfcChillerTypeEnum::IfcChillerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcChillerTypeEnum::IfcChillerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcChillerTypeEnum::IfcChillerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcChillerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2950,12 +3059,14 @@ Ifc4x3_rc3::IfcChimneyTypeEnum::IfcChimneyTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcChimneyTypeEnum::IfcChimneyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcChimneyTypeEnum::IfcChimneyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcChimneyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -2985,12 +3096,14 @@ Ifc4x3_rc3::IfcCoilTypeEnum::IfcCoilTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcCoilTypeEnum::IfcCoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCoilTypeEnum::IfcCoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3027,12 +3140,14 @@ Ifc4x3_rc3::IfcColumnTypeEnum::IfcColumnTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcColumnTypeEnum::IfcColumnTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcColumnTypeEnum::IfcColumnTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcColumnTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3067,12 +3182,14 @@ Ifc4x3_rc3::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEn } Ifc4x3_rc3::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCommunicationsApplianceTypeEnum::IfcCommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3123,12 +3240,14 @@ Ifc4x3_rc3::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEn } Ifc4x3_rc3::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcComplexPropertyTemplateTypeEnum::IfcComplexPropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcComplexPropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3158,12 +3277,14 @@ Ifc4x3_rc3::IfcCompressorTypeEnum::IfcCompressorTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcCompressorTypeEnum::IfcCompressorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCompressorTypeEnum::IfcCompressorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCompressorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3208,12 +3329,14 @@ Ifc4x3_rc3::IfcCondenserTypeEnum::IfcCondenserTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcCondenserTypeEnum::IfcCondenserTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCondenserTypeEnum::IfcCondenserTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCondenserTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3250,12 +3373,14 @@ Ifc4x3_rc3::IfcConnectionTypeEnum::IfcConnectionTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcConnectionTypeEnum::IfcConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcConnectionTypeEnum::IfcConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3287,12 +3412,14 @@ Ifc4x3_rc3::IfcConstraintEnum::IfcConstraintEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcConstraintEnum::IfcConstraintEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcConstraintEnum::IfcConstraintEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConstraintEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3325,12 +3452,14 @@ Ifc4x3_rc3::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentRe } Ifc4x3_rc3::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcConstructionEquipmentResourceTypeEnum::IfcConstructionEquipmentResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConstructionEquipmentResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3368,12 +3497,14 @@ Ifc4x3_rc3::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialReso } Ifc4x3_rc3::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcConstructionMaterialResourceTypeEnum::IfcConstructionMaterialResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConstructionMaterialResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3412,12 +3543,14 @@ Ifc4x3_rc3::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResour } Ifc4x3_rc3::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcConstructionProductResourceTypeEnum::IfcConstructionProductResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConstructionProductResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3449,12 +3582,14 @@ Ifc4x3_rc3::IfcControllerTypeEnum::IfcControllerTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcControllerTypeEnum::IfcControllerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcControllerTypeEnum::IfcControllerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcControllerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3489,12 +3624,14 @@ Ifc4x3_rc3::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(IfcEntityInst } Ifc4x3_rc3::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConveyorSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcConveyorSegmentTypeEnum::IfcConveyorSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcConveyorSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3528,12 +3665,14 @@ Ifc4x3_rc3::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCooledBeamTypeEnum::IfcCooledBeamTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCooledBeamTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3565,12 +3704,14 @@ Ifc4x3_rc3::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCoolingTowerTypeEnum::IfcCoolingTowerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCoolingTowerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3603,12 +3744,14 @@ Ifc4x3_rc3::IfcCostItemTypeEnum::IfcCostItemTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcCostItemTypeEnum::IfcCostItemTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCostItemTypeEnum::IfcCostItemTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCostItemTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3638,12 +3781,14 @@ Ifc4x3_rc3::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCostScheduleTypeEnum::IfcCostScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCostScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3680,12 +3825,14 @@ Ifc4x3_rc3::IfcCourseTypeEnum::IfcCourseTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcCourseTypeEnum::IfcCourseTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCourseTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCourseTypeEnum::IfcCourseTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCourseTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3721,12 +3868,14 @@ Ifc4x3_rc3::IfcCoveringTypeEnum::IfcCoveringTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcCoveringTypeEnum::IfcCoveringTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCoveringTypeEnum::IfcCoveringTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCoveringTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3767,12 +3916,14 @@ Ifc4x3_rc3::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCrewResourceTypeEnum::IfcCrewResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCrewResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3804,12 +3955,14 @@ Ifc4x3_rc3::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCurtainWallTypeEnum::IfcCurtainWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCurtainWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3839,12 +3992,14 @@ Ifc4x3_rc3::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(IfcEntityInstan } Ifc4x3_rc3::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcCurveInterpolationEnum::IfcCurveInterpolationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcCurveInterpolationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3876,12 +4031,14 @@ Ifc4x3_rc3::IfcDamperTypeEnum::IfcDamperTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcDamperTypeEnum::IfcDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDamperTypeEnum::IfcDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3922,12 +4079,14 @@ Ifc4x3_rc3::IfcDataOriginEnum::IfcDataOriginEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcDataOriginEnum::IfcDataOriginEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDataOriginEnum::IfcDataOriginEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDataOriginEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -3960,12 +4119,14 @@ Ifc4x3_rc3::IfcDerivedUnitEnum::IfcDerivedUnitEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcDerivedUnitEnum::IfcDerivedUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDerivedUnitEnum::IfcDerivedUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDerivedUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4046,12 +4207,14 @@ Ifc4x3_rc3::IfcDirectionSenseEnum::IfcDirectionSenseEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcDirectionSenseEnum::IfcDirectionSenseEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDirectionSenseEnum::IfcDirectionSenseEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDirectionSenseEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4081,12 +4244,14 @@ Ifc4x3_rc3::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(IfcEntity } Ifc4x3_rc3::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDiscreteAccessoryTypeEnum::IfcDiscreteAccessoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDiscreteAccessoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4135,12 +4300,14 @@ Ifc4x3_rc3::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(IfcEntity } Ifc4x3_rc3::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDistributionBoardTypeEnum::IfcDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4175,12 +4342,14 @@ Ifc4x3_rc3::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElement } Ifc4x3_rc3::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDistributionChamberElementTypeEnum::IfcDistributionChamberElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDistributionChamberElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4218,12 +4387,14 @@ Ifc4x3_rc3::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(IfcEntityIn } Ifc4x3_rc3::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDistributionPortTypeEnum::IfcDistributionPortTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDistributionPortTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4258,12 +4429,14 @@ Ifc4x3_rc3::IfcDistributionSystemEnum::IfcDistributionSystemEnum(IfcEntityInstan } Ifc4x3_rc3::IfcDistributionSystemEnum::IfcDistributionSystemEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDistributionSystemEnum::IfcDistributionSystemEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDistributionSystemEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4338,12 +4511,14 @@ Ifc4x3_rc3::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(IfcEn } Ifc4x3_rc3::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDocumentConfidentialityEnum::IfcDocumentConfidentialityEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDocumentConfidentialityEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4377,12 +4552,14 @@ Ifc4x3_rc3::IfcDocumentStatusEnum::IfcDocumentStatusEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcDocumentStatusEnum::IfcDocumentStatusEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDocumentStatusEnum::IfcDocumentStatusEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDocumentStatusEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4415,12 +4592,14 @@ Ifc4x3_rc3::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(IfcEntityInstan } Ifc4x3_rc3::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDoorPanelOperationEnum::IfcDoorPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4457,12 +4636,14 @@ Ifc4x3_rc3::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(IfcEntityInstance } Ifc4x3_rc3::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDoorPanelPositionEnum::IfcDoorPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4494,12 +4675,14 @@ Ifc4x3_rc3::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(IfcEntity } Ifc4x3_rc3::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDoorStyleConstructionEnum::IfcDoorStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4536,12 +4719,14 @@ Ifc4x3_rc3::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(IfcEntityInstan } Ifc4x3_rc3::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDoorStyleOperationEnum::IfcDoorStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4587,12 +4772,14 @@ Ifc4x3_rc3::IfcDoorTypeEnum::IfcDoorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcDoorTypeEnum::IfcDoorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDoorTypeEnum::IfcDoorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4627,12 +4814,14 @@ Ifc4x3_rc3::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(IfcEntityInstance } Ifc4x3_rc3::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDoorTypeOperationEnum::IfcDoorTypeOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDoorTypeOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4685,12 +4874,14 @@ Ifc4x3_rc3::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDuctFittingTypeEnum::IfcDuctFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDuctFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4727,12 +4918,14 @@ Ifc4x3_rc3::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDuctSegmentTypeEnum::IfcDuctSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDuctSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4764,12 +4957,14 @@ Ifc4x3_rc3::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcDuctSilencerTypeEnum::IfcDuctSilencerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDuctSilencerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4802,12 +4997,14 @@ Ifc4x3_rc3::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEarthworksCutTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcEarthworksCutTypeEnum::IfcEarthworksCutTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEarthworksCutTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4846,12 +5043,14 @@ Ifc4x3_rc3::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEarthworksFillTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcEarthworksFillTypeEnum::IfcEarthworksFillTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEarthworksFillTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4888,12 +5087,14 @@ Ifc4x3_rc3::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(IfcEntity } Ifc4x3_rc3::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElectricApplianceTypeEnum::IfcElectricApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4939,12 +5140,14 @@ Ifc4x3_rc3::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTy } Ifc4x3_rc3::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElectricDistributionBoardTypeEnum::IfcElectricDistributionBoardTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricDistributionBoardTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -4978,12 +5181,14 @@ Ifc4x3_rc3::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTy } Ifc4x3_rc3::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElectricFlowStorageDeviceTypeEnum::IfcElectricFlowStorageDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricFlowStorageDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5022,12 +5227,14 @@ Ifc4x3_rc3::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDevi } Ifc4x3_rc3::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricFlowTreatmentDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElectricFlowTreatmentDeviceTypeEnum::IfcElectricFlowTreatmentDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricFlowTreatmentDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5058,12 +5265,14 @@ Ifc4x3_rc3::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(IfcEntity } Ifc4x3_rc3::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElectricGeneratorTypeEnum::IfcElectricGeneratorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricGeneratorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5096,12 +5305,14 @@ Ifc4x3_rc3::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElectricMotorTypeEnum::IfcElectricMotorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricMotorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5136,12 +5347,14 @@ Ifc4x3_rc3::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(IfcEn } Ifc4x3_rc3::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElectricTimeControlTypeEnum::IfcElectricTimeControlTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElectricTimeControlTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5174,12 +5387,14 @@ Ifc4x3_rc3::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(IfcEntityInst } Ifc4x3_rc3::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElementAssemblyTypeEnum::IfcElementAssemblyTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElementAssemblyTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5237,12 +5452,14 @@ Ifc4x3_rc3::IfcElementCompositionEnum::IfcElementCompositionEnum(IfcEntityInstan } Ifc4x3_rc3::IfcElementCompositionEnum::IfcElementCompositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcElementCompositionEnum::IfcElementCompositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcElementCompositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5273,12 +5490,14 @@ Ifc4x3_rc3::IfcEngineTypeEnum::IfcEngineTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcEngineTypeEnum::IfcEngineTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcEngineTypeEnum::IfcEngineTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEngineTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5310,12 +5529,14 @@ Ifc4x3_rc3::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(IfcEntity } Ifc4x3_rc3::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcEvaporativeCoolerTypeEnum::IfcEvaporativeCoolerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEvaporativeCoolerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5354,12 +5575,14 @@ Ifc4x3_rc3::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcEvaporatorTypeEnum::IfcEvaporatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEvaporatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5395,12 +5618,14 @@ Ifc4x3_rc3::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcEventTriggerTypeEnum::IfcEventTriggerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEventTriggerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5434,12 +5659,14 @@ Ifc4x3_rc3::IfcEventTypeEnum::IfcEventTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcEventTypeEnum::IfcEventTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcEventTypeEnum::IfcEventTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcEventTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5472,12 +5699,14 @@ Ifc4x3_rc3::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum } Ifc4x3_rc3::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcExternalSpatialElementTypeEnum::IfcExternalSpatialElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcExternalSpatialElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5511,12 +5740,14 @@ Ifc4x3_rc3::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(IfcEnti } Ifc4x3_rc3::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFacilityPartCommonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFacilityPartCommonTypeEnum::IfcFacilityPartCommonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFacilityPartCommonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5554,12 +5785,14 @@ Ifc4x3_rc3::IfcFacilityUsageEnum::IfcFacilityUsageEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcFacilityUsageEnum::IfcFacilityUsageEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFacilityUsageEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFacilityUsageEnum::IfcFacilityUsageEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFacilityUsageEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5593,12 +5826,14 @@ Ifc4x3_rc3::IfcFanTypeEnum::IfcFanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcFanTypeEnum::IfcFanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFanTypeEnum::IfcFanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5635,12 +5870,14 @@ Ifc4x3_rc3::IfcFastenerTypeEnum::IfcFastenerTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcFastenerTypeEnum::IfcFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFastenerTypeEnum::IfcFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5673,12 +5910,14 @@ Ifc4x3_rc3::IfcFilterTypeEnum::IfcFilterTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcFilterTypeEnum::IfcFilterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFilterTypeEnum::IfcFilterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFilterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5714,12 +5953,14 @@ Ifc4x3_rc3::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEn } Ifc4x3_rc3::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFireSuppressionTerminalTypeEnum::IfcFireSuppressionTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFireSuppressionTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5755,12 +5996,14 @@ Ifc4x3_rc3::IfcFlowDirectionEnum::IfcFlowDirectionEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcFlowDirectionEnum::IfcFlowDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFlowDirectionEnum::IfcFlowDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFlowDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5792,12 +6035,14 @@ Ifc4x3_rc3::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFlowInstrumentTypeEnum::IfcFlowInstrumentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFlowInstrumentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5837,12 +6082,14 @@ Ifc4x3_rc3::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFlowMeterTypeEnum::IfcFlowMeterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFlowMeterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5876,12 +6123,14 @@ Ifc4x3_rc3::IfcFootingTypeEnum::IfcFootingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcFootingTypeEnum::IfcFootingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFootingTypeEnum::IfcFootingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFootingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5916,12 +6165,14 @@ Ifc4x3_rc3::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcFurnitureTypeEnum::IfcFurnitureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFurnitureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5959,12 +6210,14 @@ Ifc4x3_rc3::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(IfcEntity } Ifc4x3_rc3::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcGeographicElementTypeEnum::IfcGeographicElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeographicElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -5996,12 +6249,14 @@ Ifc4x3_rc3::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(IfcEntityInst } Ifc4x3_rc3::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcGeometricProjectionEnum::IfcGeometricProjectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeometricProjectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6038,12 +6293,14 @@ Ifc4x3_rc3::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcGlobalOrLocalEnum::IfcGlobalOrLocalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGlobalOrLocalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6073,12 +6330,14 @@ Ifc4x3_rc3::IfcGridTypeEnum::IfcGridTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcGridTypeEnum::IfcGridTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcGridTypeEnum::IfcGridTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGridTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6112,12 +6371,14 @@ Ifc4x3_rc3::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcHeatExchangerTypeEnum::IfcHeatExchangerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcHeatExchangerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6150,12 +6411,14 @@ Ifc4x3_rc3::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcHumidifierTypeEnum::IfcHumidifierTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcHumidifierTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6198,12 +6461,14 @@ Ifc4x3_rc3::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum } Ifc4x3_rc3::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcImpactProtectionDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcImpactProtectionDeviceTypeEnum::IfcImpactProtectionDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcImpactProtectionDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6237,12 +6502,14 @@ Ifc4x3_rc3::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcInterceptorTypeEnum::IfcInterceptorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcInterceptorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6276,12 +6543,14 @@ Ifc4x3_rc3::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(IfcEntityInstan } Ifc4x3_rc3::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcInternalOrExternalEnum::IfcInternalOrExternalEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcInternalOrExternalEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6315,12 +6584,14 @@ Ifc4x3_rc3::IfcInventoryTypeEnum::IfcInventoryTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcInventoryTypeEnum::IfcInventoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcInventoryTypeEnum::IfcInventoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcInventoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6353,12 +6624,14 @@ Ifc4x3_rc3::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcJunctionBoxTypeEnum::IfcJunctionBoxTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcJunctionBoxTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6390,12 +6663,14 @@ Ifc4x3_rc3::IfcKnotType::IfcKnotType(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcKnotType::IfcKnotType(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcKnotType::IfcKnotType(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcKnotType_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6427,12 +6702,14 @@ Ifc4x3_rc3::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLaborResourceTypeEnum::IfcLaborResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLaborResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6481,12 +6758,14 @@ Ifc4x3_rc3::IfcLampTypeEnum::IfcLampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcLampTypeEnum::IfcLampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLampTypeEnum::IfcLampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6525,12 +6804,14 @@ Ifc4x3_rc3::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(IfcEntityInstance } Ifc4x3_rc3::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLayerSetDirectionEnum::IfcLayerSetDirectionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLayerSetDirectionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6561,12 +6842,14 @@ Ifc4x3_rc3::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(IfcEnti } Ifc4x3_rc3::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLightDistributionCurveEnum::IfcLightDistributionCurveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLightDistributionCurveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6598,12 +6881,14 @@ Ifc4x3_rc3::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(IfcEntityInst } Ifc4x3_rc3::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLightEmissionSourceEnum::IfcLightEmissionSourceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLightEmissionSourceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6642,12 +6927,14 @@ Ifc4x3_rc3::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLightFixtureTypeEnum::IfcLightFixtureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLightFixtureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6680,12 +6967,14 @@ Ifc4x3_rc3::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLiquidTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLiquidTerminalTypeEnum::IfcLiquidTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLiquidTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6717,12 +7006,14 @@ Ifc4x3_rc3::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLoadGroupTypeEnum::IfcLoadGroupTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLoadGroupTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6755,12 +7046,14 @@ Ifc4x3_rc3::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcLogicalOperatorEnum::IfcLogicalOperatorEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcLogicalOperatorEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6793,12 +7086,14 @@ Ifc4x3_rc3::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMarineFacilityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcMarineFacilityTypeEnum::IfcMarineFacilityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMarineFacilityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6847,12 +7142,14 @@ Ifc4x3_rc3::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMarinePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcMarinePartTypeEnum::IfcMarinePartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMarinePartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6906,12 +7203,14 @@ Ifc4x3_rc3::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(IfcEnti } Ifc4x3_rc3::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcMechanicalFastenerTypeEnum::IfcMechanicalFastenerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMechanicalFastenerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6956,12 +7255,14 @@ Ifc4x3_rc3::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcMedicalDeviceTypeEnum::IfcMedicalDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMedicalDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -6996,12 +7297,14 @@ Ifc4x3_rc3::IfcMemberTypeEnum::IfcMemberTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcMemberTypeEnum::IfcMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcMemberTypeEnum::IfcMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7050,12 +7353,14 @@ Ifc4x3_rc3::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunica } Ifc4x3_rc3::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMobileTelecommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcMobileTelecommunicationsApplianceTypeEnum::IfcMobileTelecommunicationsApplianceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMobileTelecommunicationsApplianceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7092,12 +7397,14 @@ Ifc4x3_rc3::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMooringDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcMooringDeviceTypeEnum::IfcMooringDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMooringDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7132,12 +7439,14 @@ Ifc4x3_rc3::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(IfcEntityInst } Ifc4x3_rc3::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcMotorConnectionTypeEnum::IfcMotorConnectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMotorConnectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7170,12 +7479,14 @@ Ifc4x3_rc3::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(IfcEntity } Ifc4x3_rc3::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcNavigationElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcNavigationElementTypeEnum::IfcNavigationElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcNavigationElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7207,12 +7518,14 @@ Ifc4x3_rc3::IfcObjectTypeEnum::IfcObjectTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcObjectTypeEnum::IfcObjectTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcObjectTypeEnum::IfcObjectTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcObjectTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7248,12 +7561,14 @@ Ifc4x3_rc3::IfcObjectiveEnum::IfcObjectiveEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcObjectiveEnum::IfcObjectiveEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcObjectiveEnum::IfcObjectiveEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcObjectiveEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7294,12 +7609,14 @@ Ifc4x3_rc3::IfcOccupantTypeEnum::IfcOccupantTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcOccupantTypeEnum::IfcOccupantTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcOccupantTypeEnum::IfcOccupantTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcOccupantTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7336,12 +7653,14 @@ Ifc4x3_rc3::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcOpeningElementTypeEnum::IfcOpeningElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcOpeningElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7373,12 +7692,14 @@ Ifc4x3_rc3::IfcOutletTypeEnum::IfcOutletTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcOutletTypeEnum::IfcOutletTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcOutletTypeEnum::IfcOutletTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcOutletTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7405,6 +7726,45 @@ Ifc4x3_rc3::IfcOutletTypeEnum::operator Ifc4x3_rc3::IfcOutletTypeEnum::Value() c return FromString((std::string) *data_->getArgument(0)); } +const IfcParse::enumeration_type& Ifc4x3_rc3::IfcPavementTypeEnum::declaration() const { return *IFC4X3_RC3_IfcPavementTypeEnum_type; } +const IfcParse::enumeration_type& Ifc4x3_rc3::IfcPavementTypeEnum::Class() { return *IFC4X3_RC3_IfcPavementTypeEnum_type; } + +Ifc4x3_rc3::IfcPavementTypeEnum::IfcPavementTypeEnum(IfcEntityInstanceData* e) { + data_ = e; +} + +Ifc4x3_rc3::IfcPavementTypeEnum::IfcPavementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPavementTypeEnum_type); + IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); + attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); + data_->setArgument(0,attr); +} + +Ifc4x3_rc3::IfcPavementTypeEnum::IfcPavementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPavementTypeEnum_type); + IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); + attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); + data_->setArgument(0,attr); +} + +const char* Ifc4x3_rc3::IfcPavementTypeEnum::ToString(Value v) { + if ( v < 0 || v >= 4 ) throw IfcException("Unable to find find keyword in schema"); + const char* names[] = { "FLEXIBLE", "RIGID", "USERDEFINED", "NOTDEFINED" }; + return names[v]; +} + +Ifc4x3_rc3::IfcPavementTypeEnum::Value Ifc4x3_rc3::IfcPavementTypeEnum::FromString(const std::string& s) { + if (s == "FLEXIBLE") return ::Ifc4x3_rc3::IfcPavementTypeEnum::IfcPavementType_FLEXIBLE; + if (s == "RIGID") return ::Ifc4x3_rc3::IfcPavementTypeEnum::IfcPavementType_RIGID; + if (s == "USERDEFINED") return ::Ifc4x3_rc3::IfcPavementTypeEnum::IfcPavementType_USERDEFINED; + if (s == "NOTDEFINED") return ::Ifc4x3_rc3::IfcPavementTypeEnum::IfcPavementType_NOTDEFINED; + throw IfcException("Unable to find find keyword in schema"); +} + +Ifc4x3_rc3::IfcPavementTypeEnum::operator Ifc4x3_rc3::IfcPavementTypeEnum::Value() const { + return FromString((std::string) *data_->getArgument(0)); +} + const IfcParse::enumeration_type& Ifc4x3_rc3::IfcPerformanceHistoryTypeEnum::declaration() const { return *IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type; } const IfcParse::enumeration_type& Ifc4x3_rc3::IfcPerformanceHistoryTypeEnum::Class() { return *IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type; } @@ -7413,12 +7773,14 @@ Ifc4x3_rc3::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(IfcEnti } Ifc4x3_rc3::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPerformanceHistoryTypeEnum::IfcPerformanceHistoryTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPerformanceHistoryTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7448,12 +7810,14 @@ Ifc4x3_rc3::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum } Ifc4x3_rc3::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPermeableCoveringOperationEnum::IfcPermeableCoveringOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPermeableCoveringOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7486,12 +7850,14 @@ Ifc4x3_rc3::IfcPermitTypeEnum::IfcPermitTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcPermitTypeEnum::IfcPermitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPermitTypeEnum::IfcPermitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPermitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7524,12 +7890,14 @@ Ifc4x3_rc3::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(IfcEntityInstance } Ifc4x3_rc3::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPhysicalOrVirtualEnum::IfcPhysicalOrVirtualEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPhysicalOrVirtualEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7560,12 +7928,14 @@ Ifc4x3_rc3::IfcPileConstructionEnum::IfcPileConstructionEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcPileConstructionEnum::IfcPileConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPileConstructionEnum::IfcPileConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPileConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7599,12 +7969,14 @@ Ifc4x3_rc3::IfcPileTypeEnum::IfcPileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcPileTypeEnum::IfcPileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPileTypeEnum::IfcPileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7640,12 +8012,14 @@ Ifc4x3_rc3::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPipeFittingTypeEnum::IfcPipeFittingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPipeFittingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7682,12 +8056,14 @@ Ifc4x3_rc3::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPipeSegmentTypeEnum::IfcPipeSegmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPipeSegmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7722,12 +8098,14 @@ Ifc4x3_rc3::IfcPlateTypeEnum::IfcPlateTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcPlateTypeEnum::IfcPlateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPlateTypeEnum::IfcPlateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPlateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7766,12 +8144,14 @@ Ifc4x3_rc3::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepr } Ifc4x3_rc3::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPreferredSurfaceCurveRepresentation::IfcPreferredSurfaceCurveRepresentation(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPreferredSurfaceCurveRepresentation_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7802,12 +8182,14 @@ Ifc4x3_rc3::IfcProcedureTypeEnum::IfcProcedureTypeEnum(IfcEntityInstanceData* e) } Ifc4x3_rc3::IfcProcedureTypeEnum::IfcProcedureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcProcedureTypeEnum::IfcProcedureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProcedureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7844,12 +8226,14 @@ Ifc4x3_rc3::IfcProfileTypeEnum::IfcProfileTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcProfileTypeEnum::IfcProfileTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcProfileTypeEnum::IfcProfileTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProfileTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7879,12 +8263,14 @@ Ifc4x3_rc3::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcProjectOrderTypeEnum::IfcProjectOrderTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProjectOrderTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7919,12 +8305,14 @@ Ifc4x3_rc3::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(IfcEntity } Ifc4x3_rc3::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcProjectedOrTrueLengthEnum::IfcProjectedOrTrueLengthEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProjectedOrTrueLengthEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7954,12 +8342,14 @@ Ifc4x3_rc3::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(IfcEntity } Ifc4x3_rc3::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcProjectionElementTypeEnum::IfcProjectionElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProjectionElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -7991,12 +8381,14 @@ Ifc4x3_rc3::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(IfcEn } Ifc4x3_rc3::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPropertySetTemplateTypeEnum::IfcPropertySetTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertySetTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8032,12 +8424,14 @@ Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTripping } Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcProtectiveDeviceTrippingUnitTypeEnum::IfcProtectiveDeviceTrippingUnitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProtectiveDeviceTrippingUnitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8071,12 +8465,14 @@ Ifc4x3_rc3::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(IfcEntityIn } Ifc4x3_rc3::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcProtectiveDeviceTypeEnum::IfcProtectiveDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcProtectiveDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8116,12 +8512,14 @@ Ifc4x3_rc3::IfcPumpTypeEnum::IfcPumpTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcPumpTypeEnum::IfcPumpTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcPumpTypeEnum::IfcPumpTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPumpTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8158,12 +8556,14 @@ Ifc4x3_rc3::IfcRailTypeEnum::IfcRailTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcRailTypeEnum::IfcRailTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRailTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRailTypeEnum::IfcRailTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRailTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8199,12 +8599,14 @@ Ifc4x3_rc3::IfcRailingTypeEnum::IfcRailingTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcRailingTypeEnum::IfcRailingTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRailingTypeEnum::IfcRailingTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRailingTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8238,12 +8640,14 @@ Ifc4x3_rc3::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRailwayPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRailwayPartTypeEnum::IfcRailwayPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRailwayPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8281,12 +8685,14 @@ Ifc4x3_rc3::IfcRailwayTypeEnum::IfcRailwayTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcRailwayTypeEnum::IfcRailwayTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRailwayTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRailwayTypeEnum::IfcRailwayTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRailwayTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8316,12 +8722,14 @@ Ifc4x3_rc3::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRampFlightTypeEnum::IfcRampFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRampFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8353,12 +8761,14 @@ Ifc4x3_rc3::IfcRampTypeEnum::IfcRampTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcRampTypeEnum::IfcRampTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRampTypeEnum::IfcRampTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRampTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8394,12 +8804,14 @@ Ifc4x3_rc3::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRecurrenceTypeEnum::IfcRecurrenceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRecurrenceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8435,12 +8847,14 @@ Ifc4x3_rc3::IfcReferentTypeEnum::IfcReferentTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcReferentTypeEnum::IfcReferentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcReferentTypeEnum::IfcReferentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReferentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8474,12 +8888,14 @@ Ifc4x3_rc3::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(IfcEntityInstance } Ifc4x3_rc3::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcReflectanceMethodEnum::IfcReflectanceMethodEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReflectanceMethodEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8517,12 +8933,14 @@ Ifc4x3_rc3::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcedSoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcReinforcedSoilTypeEnum::IfcReinforcedSoilTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcedSoilTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8558,12 +8976,14 @@ Ifc4x3_rc3::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(IfcEntityInstan } Ifc4x3_rc3::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcReinforcingBarRoleEnum::IfcReinforcingBarRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingBarRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8601,12 +9021,14 @@ Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(IfcEntity } Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::IfcReinforcingBarSurfaceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingBarSurfaceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8636,12 +9058,14 @@ Ifc4x3_rc3::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcReinforcingBarTypeEnum::IfcReinforcingBarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingBarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8680,12 +9104,14 @@ Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(IfcEntityInst } Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::IfcReinforcingMeshTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingMeshTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8715,12 +9141,14 @@ Ifc4x3_rc3::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRoadPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRoadPartTypeEnum::IfcRoadPartTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRoadPartTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8774,12 +9202,14 @@ Ifc4x3_rc3::IfcRoadTypeEnum::IfcRoadTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcRoadTypeEnum::IfcRoadTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRoadTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRoadTypeEnum::IfcRoadTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRoadTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8809,12 +9239,14 @@ Ifc4x3_rc3::IfcRoleEnum::IfcRoleEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcRoleEnum::IfcRoleEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRoleEnum::IfcRoleEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRoleEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8865,12 +9297,14 @@ Ifc4x3_rc3::IfcRoofTypeEnum::IfcRoofTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcRoofTypeEnum::IfcRoofTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcRoofTypeEnum::IfcRoofTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRoofTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8913,12 +9347,14 @@ Ifc4x3_rc3::IfcSIPrefix::IfcSIPrefix(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSIPrefix::IfcSIPrefix(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSIPrefix::IfcSIPrefix(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSIPrefix_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -8962,12 +9398,14 @@ Ifc4x3_rc3::IfcSIUnitName::IfcSIUnitName(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSIUnitName::IfcSIUnitName(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSIUnitName::IfcSIUnitName(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSIUnitName_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9025,12 +9463,14 @@ Ifc4x3_rc3::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(IfcEntityIn } Ifc4x3_rc3::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSanitaryTerminalTypeEnum::IfcSanitaryTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSanitaryTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9070,12 +9510,14 @@ Ifc4x3_rc3::IfcSectionTypeEnum::IfcSectionTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSectionTypeEnum::IfcSectionTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSectionTypeEnum::IfcSectionTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSectionTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9105,12 +9547,14 @@ Ifc4x3_rc3::IfcSensorTypeEnum::IfcSensorTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSensorTypeEnum::IfcSensorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSensorTypeEnum::IfcSensorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSensorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9172,12 +9616,14 @@ Ifc4x3_rc3::IfcSequenceEnum::IfcSequenceEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSequenceEnum::IfcSequenceEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSequenceEnum::IfcSequenceEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSequenceEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9211,12 +9657,14 @@ Ifc4x3_rc3::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcShadingDeviceTypeEnum::IfcShadingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcShadingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9249,12 +9697,14 @@ Ifc4x3_rc3::IfcSignTypeEnum::IfcSignTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSignTypeEnum::IfcSignTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSignTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSignTypeEnum::IfcSignTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSignTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9287,12 +9737,14 @@ Ifc4x3_rc3::IfcSignalTypeEnum::IfcSignalTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSignalTypeEnum::IfcSignalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSignalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSignalTypeEnum::IfcSignalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSignalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9325,12 +9777,14 @@ Ifc4x3_rc3::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum } Ifc4x3_rc3::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSimplePropertyTemplateTypeEnum::IfcSimplePropertyTemplateTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSimplePropertyTemplateTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9370,12 +9824,14 @@ Ifc4x3_rc3::IfcSlabTypeEnum::IfcSlabTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSlabTypeEnum::IfcSlabTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSlabTypeEnum::IfcSlabTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSlabTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9414,12 +9870,14 @@ Ifc4x3_rc3::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSolarDeviceTypeEnum::IfcSolarDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSolarDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9451,12 +9909,14 @@ Ifc4x3_rc3::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSpaceHeaterTypeEnum::IfcSpaceHeaterTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSpaceHeaterTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9488,12 +9948,14 @@ Ifc4x3_rc3::IfcSpaceTypeEnum::IfcSpaceTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSpaceTypeEnum::IfcSpaceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSpaceTypeEnum::IfcSpaceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSpaceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9529,12 +9991,14 @@ Ifc4x3_rc3::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSpatialZoneTypeEnum::IfcSpatialZoneTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSpatialZoneTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9573,12 +10037,14 @@ Ifc4x3_rc3::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcStackTerminalTypeEnum::IfcStackTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStackTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9611,12 +10077,14 @@ Ifc4x3_rc3::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcStairFlightTypeEnum::IfcStairFlightTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStairFlightTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9651,12 +10119,14 @@ Ifc4x3_rc3::IfcStairTypeEnum::IfcStairTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcStairTypeEnum::IfcStairTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcStairTypeEnum::IfcStairTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStairTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9701,12 +10171,14 @@ Ifc4x3_rc3::IfcStateEnum::IfcStateEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcStateEnum::IfcStateEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcStateEnum::IfcStateEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStateEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9739,12 +10211,14 @@ Ifc4x3_rc3::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEn } Ifc4x3_rc3::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcStructuralCurveActivityTypeEnum::IfcStructuralCurveActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStructuralCurveActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9781,12 +10255,14 @@ Ifc4x3_rc3::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(I } Ifc4x3_rc3::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcStructuralCurveMemberTypeEnum::IfcStructuralCurveMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStructuralCurveMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9821,12 +10297,14 @@ Ifc4x3_rc3::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTy } Ifc4x3_rc3::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcStructuralSurfaceActivityTypeEnum::IfcStructuralSurfaceActivityTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStructuralSurfaceActivityTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9860,12 +10338,14 @@ Ifc4x3_rc3::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEn } Ifc4x3_rc3::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcStructuralSurfaceMemberTypeEnum::IfcStructuralSurfaceMemberTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcStructuralSurfaceMemberTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9898,12 +10378,14 @@ Ifc4x3_rc3::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(IfcEn } Ifc4x3_rc3::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSubContractResourceTypeEnum::IfcSubContractResourceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSubContractResourceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9935,12 +10417,14 @@ Ifc4x3_rc3::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSurfaceFeatureTypeEnum::IfcSurfaceFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSurfaceFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -9981,12 +10465,14 @@ Ifc4x3_rc3::IfcSurfaceSide::IfcSurfaceSide(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcSurfaceSide::IfcSurfaceSide(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSurfaceSide::IfcSurfaceSide(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSurfaceSide_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10017,12 +10503,14 @@ Ifc4x3_rc3::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(IfcEntityInst } Ifc4x3_rc3::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSwitchingDeviceTypeEnum::IfcSwitchingDeviceTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSwitchingDeviceTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10063,12 +10551,14 @@ Ifc4x3_rc3::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum } Ifc4x3_rc3::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcSystemFurnitureElementTypeEnum::IfcSystemFurnitureElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSystemFurnitureElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10101,12 +10591,14 @@ Ifc4x3_rc3::IfcTankTypeEnum::IfcTankTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcTankTypeEnum::IfcTankTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTankTypeEnum::IfcTankTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTankTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10144,12 +10636,14 @@ Ifc4x3_rc3::IfcTaskDurationEnum::IfcTaskDurationEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcTaskDurationEnum::IfcTaskDurationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTaskDurationEnum::IfcTaskDurationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTaskDurationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10180,12 +10674,14 @@ Ifc4x3_rc3::IfcTaskTypeEnum::IfcTaskTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcTaskTypeEnum::IfcTaskTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTaskTypeEnum::IfcTaskTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTaskTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10227,12 +10723,14 @@ Ifc4x3_rc3::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTendonAnchorTypeEnum::IfcTendonAnchorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTendonAnchorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10265,12 +10763,14 @@ Ifc4x3_rc3::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTendonConduitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTendonConduitTypeEnum::IfcTendonConduitTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTendonConduitTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10305,12 +10805,14 @@ Ifc4x3_rc3::IfcTendonTypeEnum::IfcTendonTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcTendonTypeEnum::IfcTendonTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTendonTypeEnum::IfcTendonTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTendonTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10344,12 +10846,14 @@ Ifc4x3_rc3::IfcTextPath::IfcTextPath(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcTextPath::IfcTextPath(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTextPath::IfcTextPath(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTextPath_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10381,12 +10885,14 @@ Ifc4x3_rc3::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTimeSeriesDataTypeEnum::IfcTimeSeriesDataTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTimeSeriesDataTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10421,12 +10927,14 @@ Ifc4x3_rc3::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTrackElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTrackElementTypeEnum::IfcTrackElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTrackElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10464,12 +10972,14 @@ Ifc4x3_rc3::IfcTransformerTypeEnum::IfcTransformerTypeEnum(IfcEntityInstanceData } Ifc4x3_rc3::IfcTransformerTypeEnum::IfcTransformerTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTransformerTypeEnum::IfcTransformerTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTransformerTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10506,12 +11016,14 @@ Ifc4x3_rc3::IfcTransitionCode::IfcTransitionCode(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcTransitionCode::IfcTransitionCode(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTransitionCode::IfcTransitionCode(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTransitionCode_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10543,12 +11055,14 @@ Ifc4x3_rc3::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(I } Ifc4x3_rc3::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTransportElementFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTransportElementFixedTypeEnum::IfcTransportElementFixedTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTransportElementFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10584,12 +11098,14 @@ Ifc4x3_rc3::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedType } Ifc4x3_rc3::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTransportElementNonFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTransportElementNonFixedTypeEnum::IfcTransportElementNonFixedTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTransportElementNonFixedTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10626,12 +11142,14 @@ Ifc4x3_rc3::IfcTrimmingPreference::IfcTrimmingPreference(IfcEntityInstanceData* } Ifc4x3_rc3::IfcTrimmingPreference::IfcTrimmingPreference(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTrimmingPreference::IfcTrimmingPreference(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTrimmingPreference_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10662,12 +11180,14 @@ Ifc4x3_rc3::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(IfcEntityInstanceData* } Ifc4x3_rc3::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcTubeBundleTypeEnum::IfcTubeBundleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTubeBundleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10698,12 +11218,14 @@ Ifc4x3_rc3::IfcUnitEnum::IfcUnitEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcUnitEnum::IfcUnitEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcUnitEnum::IfcUnitEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUnitEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10761,12 +11283,14 @@ Ifc4x3_rc3::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(I } Ifc4x3_rc3::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcUnitaryControlElementTypeEnum::IfcUnitaryControlElementTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUnitaryControlElementTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10805,12 +11329,14 @@ Ifc4x3_rc3::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(IfcEntityIn } Ifc4x3_rc3::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcUnitaryEquipmentTypeEnum::IfcUnitaryEquipmentTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUnitaryEquipmentTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10845,12 +11371,14 @@ Ifc4x3_rc3::IfcValveTypeEnum::IfcValveTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcValveTypeEnum::IfcValveTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcValveTypeEnum::IfcValveTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcValveTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10901,12 +11429,14 @@ Ifc4x3_rc3::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(IfcEntityInst } Ifc4x3_rc3::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcVibrationDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcVibrationDamperTypeEnum::IfcVibrationDamperTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcVibrationDamperTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10942,12 +11472,14 @@ Ifc4x3_rc3::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(IfcEntity } Ifc4x3_rc3::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcVibrationIsolatorTypeEnum::IfcVibrationIsolatorTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcVibrationIsolatorTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -10980,12 +11512,14 @@ Ifc4x3_rc3::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(IfcEntityInstan } Ifc4x3_rc3::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcVoidingFeatureTypeEnum::IfcVoidingFeatureTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcVoidingFeatureTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11021,12 +11555,14 @@ Ifc4x3_rc3::IfcWallTypeEnum::IfcWallTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcWallTypeEnum::IfcWallTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWallTypeEnum::IfcWallTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWallTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11067,12 +11603,14 @@ Ifc4x3_rc3::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(IfcEntityInstance } Ifc4x3_rc3::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWasteTerminalTypeEnum::IfcWasteTerminalTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWasteTerminalTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11109,12 +11647,14 @@ Ifc4x3_rc3::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(IfcEntityIn } Ifc4x3_rc3::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWindowPanelOperationEnum::IfcWindowPanelOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowPanelOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11156,12 +11696,14 @@ Ifc4x3_rc3::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(IfcEntityInst } Ifc4x3_rc3::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWindowPanelPositionEnum::IfcWindowPanelPositionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowPanelPositionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11195,12 +11737,14 @@ Ifc4x3_rc3::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(IfcEn } Ifc4x3_rc3::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWindowStyleConstructionEnum::IfcWindowStyleConstructionEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowStyleConstructionEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11236,12 +11780,14 @@ Ifc4x3_rc3::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(IfcEntityIn } Ifc4x3_rc3::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWindowStyleOperationEnum::IfcWindowStyleOperationEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowStyleOperationEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11280,12 +11826,14 @@ Ifc4x3_rc3::IfcWindowTypeEnum::IfcWindowTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcWindowTypeEnum::IfcWindowTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWindowTypeEnum::IfcWindowTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11318,12 +11866,14 @@ Ifc4x3_rc3::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(IfcEnti } Ifc4x3_rc3::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWindowTypePartitioningEnum::IfcWindowTypePartitioningEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWindowTypePartitioningEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11362,12 +11912,14 @@ Ifc4x3_rc3::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWorkCalendarTypeEnum::IfcWorkCalendarTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWorkCalendarTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11400,12 +11952,14 @@ Ifc4x3_rc3::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(IfcEntityInstanceData* e) { } Ifc4x3_rc3::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWorkPlanTypeEnum::IfcWorkPlanTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWorkPlanTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -11438,12 +11992,14 @@ Ifc4x3_rc3::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(IfcEntityInstanceDa } Ifc4x3_rc3::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(Value v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,ToString(v))); data_->setArgument(0,attr); } Ifc4x3_rc3::IfcWorkScheduleTypeEnum::IfcWorkScheduleTypeEnum(const std::string& v) { + data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcWorkScheduleTypeEnum_type); IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(FromString(v),ToString(FromString(v)))); data_->setArgument(0,attr); @@ -12611,28 +13167,22 @@ void Ifc4x3_rc3::IfcAlignmentCantSegment::setStartCantRight(double v) { {IfcWrit bool Ifc4x3_rc3::IfcAlignmentCantSegment::hasEndCantRight() const { return !data_->getArgument(7)->isNull(); } double Ifc4x3_rc3::IfcAlignmentCantSegment::EndCantRight() const { return *data_->getArgument(7); } void Ifc4x3_rc3::IfcAlignmentCantSegment::setEndCantRight(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(7,attr);} } -bool Ifc4x3_rc3::IfcAlignmentCantSegment::hasSmoothingLength() const { return !data_->getArgument(8)->isNull(); } -double Ifc4x3_rc3::IfcAlignmentCantSegment::SmoothingLength() const { return *data_->getArgument(8); } -void Ifc4x3_rc3::IfcAlignmentCantSegment::setSmoothingLength(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} } -::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value Ifc4x3_rc3::IfcAlignmentCantSegment::PredefinedType() const { return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::FromString(*data_->getArgument(9)); } -void Ifc4x3_rc3::IfcAlignmentCantSegment::setPredefinedType(::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::ToString(v)));data_->setArgument(9,attr);} } +::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value Ifc4x3_rc3::IfcAlignmentCantSegment::PredefinedType() const { return ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::FromString(*data_->getArgument(8)); } +void Ifc4x3_rc3::IfcAlignmentCantSegment::setPredefinedType(::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::ToString(v)));data_->setArgument(8,attr);} } const IfcParse::entity& Ifc4x3_rc3::IfcAlignmentCantSegment::declaration() const { return *IFC4X3_RC3_IfcAlignmentCantSegment_type; } const IfcParse::entity& Ifc4x3_rc3::IfcAlignmentCantSegment::Class() { return *IFC4X3_RC3_IfcAlignmentCantSegment_type; } Ifc4x3_rc3::IfcAlignmentCantSegment::IfcAlignmentCantSegment(IfcEntityInstanceData* e) : IfcAlignmentParameterSegment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcAlignmentCantSegment_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4x3_rc3::IfcAlignmentCantSegment::IfcAlignmentCantSegment(boost::optional< std::string > v1_StartTag, boost::optional< std::string > v2_EndTag, double v3_StartDistAlong, double v4_HorizontalLength, double v5_StartCantLeft, boost::optional< double > v6_EndCantLeft, double v7_StartCantRight, boost::optional< double > v8_EndCantRight, boost::optional< double > v9_SmoothingLength, ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value v10_PredefinedType) : IfcAlignmentParameterSegment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentCantSegment_type); if (v1_StartTag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_StartTag));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_EndTag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_EndTag));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_StartDistAlong));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_HorizontalLength));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_StartCantLeft));data_->setArgument(4,attr);} if (v6_EndCantLeft) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_EndCantLeft));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_StartCantRight));data_->setArgument(6,attr);} if (v8_EndCantRight) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_EndCantRight));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_SmoothingLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_SmoothingLength));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,::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} } +Ifc4x3_rc3::IfcAlignmentCantSegment::IfcAlignmentCantSegment(boost::optional< std::string > v1_StartTag, boost::optional< std::string > v2_EndTag, double v3_StartDistAlong, double v4_HorizontalLength, double v5_StartCantLeft, boost::optional< double > v6_EndCantLeft, double v7_StartCantRight, boost::optional< double > v8_EndCantRight, ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value v9_PredefinedType) : IfcAlignmentParameterSegment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentCantSegment_type); if (v1_StartTag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_StartTag));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_EndTag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_EndTag));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_StartDistAlong));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_HorizontalLength));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_StartCantLeft));data_->setArgument(4,attr);} if (v6_EndCantLeft) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_EndCantLeft));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_StartCantRight));data_->setArgument(6,attr);} if (v8_EndCantRight) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_EndCantRight));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_PredefinedType,::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::ToString(v9_PredefinedType))));data_->setArgument(8,attr);} } // Function implementations for IfcAlignmentHorizontal -bool Ifc4x3_rc3::IfcAlignmentHorizontal::hasStartDistAlong() const { return !data_->getArgument(7)->isNull(); } -double Ifc4x3_rc3::IfcAlignmentHorizontal::StartDistAlong() const { return *data_->getArgument(7); } -void Ifc4x3_rc3::IfcAlignmentHorizontal::setStartDistAlong(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(7,attr);} } const IfcParse::entity& Ifc4x3_rc3::IfcAlignmentHorizontal::declaration() const { return *IFC4X3_RC3_IfcAlignmentHorizontal_type; } const IfcParse::entity& Ifc4x3_rc3::IfcAlignmentHorizontal::Class() { return *IFC4X3_RC3_IfcAlignmentHorizontal_type; } Ifc4x3_rc3::IfcAlignmentHorizontal::IfcAlignmentHorizontal(IfcEntityInstanceData* e) : IfcLinearElement((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcAlignmentHorizontal_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4x3_rc3::IfcAlignmentHorizontal::IfcAlignmentHorizontal(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation, boost::optional< double > v8_StartDistAlong) : IfcLinearElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentHorizontal_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_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_StartDistAlong) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_StartDistAlong));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } } +Ifc4x3_rc3::IfcAlignmentHorizontal::IfcAlignmentHorizontal(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation) : IfcLinearElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcAlignmentHorizontal_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_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} } // Function implementations for IfcAlignmentHorizontalSegment ::Ifc4x3_rc3::IfcCartesianPoint* Ifc4x3_rc3::IfcAlignmentHorizontalSegment::StartPoint() const { return (::Ifc4x3_rc3::IfcCartesianPoint*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(2))); } @@ -14962,6 +15512,14 @@ const IfcParse::entity& Ifc4x3_rc3::IfcDirectrixCurveSweptAreaSolid::Class() { r Ifc4x3_rc3::IfcDirectrixCurveSweptAreaSolid::IfcDirectrixCurveSweptAreaSolid(IfcEntityInstanceData* e) : IfcSweptAreaSolid((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } Ifc4x3_rc3::IfcDirectrixCurveSweptAreaSolid::IfcDirectrixCurveSweptAreaSolid(::Ifc4x3_rc3::IfcProfileDef* v1_SweptArea, ::Ifc4x3_rc3::IfcAxis2Placement3D* v2_Position, ::Ifc4x3_rc3::IfcCurve* v3_Directrix, ::Ifc4x3_rc3::IfcCurveMeasureSelect* v4_StartParam, ::Ifc4x3_rc3::IfcCurveMeasureSelect* v5_EndParam) : IfcSweptAreaSolid((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDirectrixCurveSweptAreaSolid_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SweptArea));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Position));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Directrix));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_StartParam));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_EndParam));data_->setArgument(4,attr);} } +// Function implementations for IfcDirectrixDerivedReferenceSweptAreaSolid + + +const IfcParse::entity& Ifc4x3_rc3::IfcDirectrixDerivedReferenceSweptAreaSolid::declaration() const { return *IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type; } +const IfcParse::entity& Ifc4x3_rc3::IfcDirectrixDerivedReferenceSweptAreaSolid::Class() { return *IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type; } +Ifc4x3_rc3::IfcDirectrixDerivedReferenceSweptAreaSolid::IfcDirectrixDerivedReferenceSweptAreaSolid(IfcEntityInstanceData* e) : IfcFixedReferenceSweptAreaSolid((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } +Ifc4x3_rc3::IfcDirectrixDerivedReferenceSweptAreaSolid::IfcDirectrixDerivedReferenceSweptAreaSolid(::Ifc4x3_rc3::IfcProfileDef* v1_SweptArea, ::Ifc4x3_rc3::IfcAxis2Placement3D* v2_Position, ::Ifc4x3_rc3::IfcCurve* v3_Directrix, ::Ifc4x3_rc3::IfcCurveMeasureSelect* v4_StartParam, ::Ifc4x3_rc3::IfcCurveMeasureSelect* v5_EndParam, ::Ifc4x3_rc3::IfcDirection* v6_FixedReference) : IfcFixedReferenceSweptAreaSolid((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDirectrixDerivedReferenceSweptAreaSolid_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SweptArea));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Position));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Directrix));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_StartParam));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_EndParam));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_FixedReference));data_->setArgument(5,attr);} } + // Function implementations for IfcDirectrixDistanceSweptAreaSolid ::Ifc4x3_rc3::IfcCurve* Ifc4x3_rc3::IfcDirectrixDistanceSweptAreaSolid::Directrix() const { return (::Ifc4x3_rc3::IfcCurve*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(2))); } void Ifc4x3_rc3::IfcDirectrixDistanceSweptAreaSolid::setDirectrix(::Ifc4x3_rc3::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} } @@ -18255,25 +18813,25 @@ Ifc4x3_rc3::IfcPath::IfcPath(IfcEntityInstanceData* e) : IfcTopologicalRepresent Ifc4x3_rc3::IfcPath::IfcPath(IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcOrientedEdge >::ptr v1_EdgeList) : IfcTopologicalRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPath_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_EdgeList)->generalize());data_->setArgument(0,attr);} } // Function implementations for IfcPavement -bool Ifc4x3_rc3::IfcPavement::hasFlexible() const { return !data_->getArgument(8)->isNull(); } -bool Ifc4x3_rc3::IfcPavement::Flexible() const { return *data_->getArgument(8); } -void Ifc4x3_rc3::IfcPavement::setFlexible(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} } +bool Ifc4x3_rc3::IfcPavement::hasPredefinedType() const { return !data_->getArgument(8)->isNull(); } +::Ifc4x3_rc3::IfcPavementTypeEnum::Value Ifc4x3_rc3::IfcPavement::PredefinedType() const { return ::Ifc4x3_rc3::IfcPavementTypeEnum::FromString(*data_->getArgument(8)); } +void Ifc4x3_rc3::IfcPavement::setPredefinedType(::Ifc4x3_rc3::IfcPavementTypeEnum::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_rc3::IfcPavementTypeEnum::ToString(v)));data_->setArgument(8,attr);} } const IfcParse::entity& Ifc4x3_rc3::IfcPavement::declaration() const { return *IFC4X3_RC3_IfcPavement_type; } const IfcParse::entity& Ifc4x3_rc3::IfcPavement::Class() { return *IFC4X3_RC3_IfcPavement_type; } Ifc4x3_rc3::IfcPavement::IfcPavement(IfcEntityInstanceData* e) : IfcBuiltElement((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcPavement_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4x3_rc3::IfcPavement::IfcPavement(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag, boost::optional< bool > v9_Flexible) : IfcBuiltElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPavement_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_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));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_Flexible) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_Flexible));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } } +Ifc4x3_rc3::IfcPavement::IfcPavement(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag, boost::optional< ::Ifc4x3_rc3::IfcPavementTypeEnum::Value > v9_PredefinedType) : IfcBuiltElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPavement_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_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));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_PredefinedType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v9_PredefinedType,::Ifc4x3_rc3::IfcPavementTypeEnum::ToString(*v9_PredefinedType))));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } } // Function implementations for IfcPavementType -bool Ifc4x3_rc3::IfcPavementType::Flexible() const { return *data_->getArgument(9); } -void Ifc4x3_rc3::IfcPavementType::setFlexible(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(9,attr);} } +::Ifc4x3_rc3::IfcPavementTypeEnum::Value Ifc4x3_rc3::IfcPavementType::PredefinedType() const { return ::Ifc4x3_rc3::IfcPavementTypeEnum::FromString(*data_->getArgument(9)); } +void Ifc4x3_rc3::IfcPavementType::setPredefinedType(::Ifc4x3_rc3::IfcPavementTypeEnum::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_rc3::IfcPavementTypeEnum::ToString(v)));data_->setArgument(9,attr);} } const IfcParse::entity& Ifc4x3_rc3::IfcPavementType::declaration() const { return *IFC4X3_RC3_IfcPavementType_type; } const IfcParse::entity& Ifc4x3_rc3::IfcPavementType::Class() { return *IFC4X3_RC3_IfcPavementType_type; } Ifc4x3_rc3::IfcPavementType::IfcPavementType(IfcEntityInstanceData* e) : IfcBuiltElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcPavementType_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4x3_rc3::IfcPavementType::IfcPavementType(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, bool v10_Flexible) : IfcBuiltElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPavementType_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((v10_Flexible));data_->setArgument(9,attr);} } +Ifc4x3_rc3::IfcPavementType::IfcPavementType(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcPavementTypeEnum::Value v10_PredefinedType) : IfcBuiltElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPavementType_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,::Ifc4x3_rc3::IfcPavementTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} } // Function implementations for IfcPcurve ::Ifc4x3_rc3::IfcSurface* Ifc4x3_rc3::IfcPcurve::BasisSurface() const { return (::Ifc4x3_rc3::IfcSurface*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(0))); } @@ -20887,8 +21445,8 @@ Ifc4x3_rc3::IfcSectionedSolid::IfcSectionedSolid(IfcEntityInstanceData* e) : Ifc Ifc4x3_rc3::IfcSectionedSolid::IfcSectionedSolid(::Ifc4x3_rc3::IfcCurve* v1_Directrix, IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcProfileDef >::ptr v2_CrossSections) : IfcSolidModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSectionedSolid_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Directrix));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_CrossSections)->generalize());data_->setArgument(1,attr);} } // Function implementations for IfcSectionedSolidHorizontal -IfcEntityList::ptr Ifc4x3_rc3::IfcSectionedSolidHorizontal::CrossSectionPositions() const { return *data_->getArgument(2); } -void Ifc4x3_rc3::IfcSectionedSolidHorizontal::setCrossSectionPositions(IfcEntityList::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} } +IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcAxis2PlacementLinear >::ptr Ifc4x3_rc3::IfcSectionedSolidHorizontal::CrossSectionPositions() const { IfcEntityList::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc3::IfcAxis2PlacementLinear >(); } +void Ifc4x3_rc3::IfcSectionedSolidHorizontal::setCrossSectionPositions(IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcAxis2PlacementLinear >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v->generalize());data_->setArgument(2,attr);} } bool Ifc4x3_rc3::IfcSectionedSolidHorizontal::FixedAxisVertical() const { return *data_->getArgument(3); } void Ifc4x3_rc3::IfcSectionedSolidHorizontal::setFixedAxisVertical(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} } @@ -20896,7 +21454,7 @@ void Ifc4x3_rc3::IfcSectionedSolidHorizontal::setFixedAxisVertical(bool v) { {If const IfcParse::entity& Ifc4x3_rc3::IfcSectionedSolidHorizontal::declaration() const { return *IFC4X3_RC3_IfcSectionedSolidHorizontal_type; } const IfcParse::entity& Ifc4x3_rc3::IfcSectionedSolidHorizontal::Class() { return *IFC4X3_RC3_IfcSectionedSolidHorizontal_type; } Ifc4x3_rc3::IfcSectionedSolidHorizontal::IfcSectionedSolidHorizontal(IfcEntityInstanceData* e) : IfcSectionedSolid((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcSectionedSolidHorizontal_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4x3_rc3::IfcSectionedSolidHorizontal::IfcSectionedSolidHorizontal(::Ifc4x3_rc3::IfcCurve* v1_Directrix, IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcProfileDef >::ptr v2_CrossSections, IfcEntityList::ptr v3_CrossSectionPositions, bool v4_FixedAxisVertical) : IfcSectionedSolid((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSectionedSolidHorizontal_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Directrix));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_CrossSections)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_CrossSectionPositions));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_FixedAxisVertical));data_->setArgument(3,attr);} } +Ifc4x3_rc3::IfcSectionedSolidHorizontal::IfcSectionedSolidHorizontal(::Ifc4x3_rc3::IfcCurve* v1_Directrix, IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcProfileDef >::ptr v2_CrossSections, IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcAxis2PlacementLinear >::ptr v3_CrossSectionPositions, bool v4_FixedAxisVertical) : IfcSectionedSolid((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSectionedSolidHorizontal_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Directrix));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_CrossSections)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_CrossSectionPositions)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_FixedAxisVertical));data_->setArgument(3,attr);} } // Function implementations for IfcSectionedSpine ::Ifc4x3_rc3::IfcCompositeCurve* Ifc4x3_rc3::IfcSectionedSpine::SpineCurve() const { return (::Ifc4x3_rc3::IfcCompositeCurve*)((IfcUtil::IfcBaseClass*)(*data_->getArgument(0))); } @@ -22836,12 +23394,15 @@ void Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::setQuadraticTerm(double v) { {If bool Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::hasLinearTerm() const { return !data_->getArgument(3)->isNull(); } double Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::LinearTerm() const { return *data_->getArgument(3); } void Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::setLinearTerm(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} } +bool Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::hasConstantTerm() const { return !data_->getArgument(4)->isNull(); } +double Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::ConstantTerm() const { return *data_->getArgument(4); } +void Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::setConstantTerm(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} } const IfcParse::entity& Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::declaration() const { return *IFC4X3_RC3_IfcThirdOrderPolynomialSpiral_type; } const IfcParse::entity& Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::Class() { return *IFC4X3_RC3_IfcThirdOrderPolynomialSpiral_type; } Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::IfcThirdOrderPolynomialSpiral(IfcEntityInstanceData* e) : IfcSpiral((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcThirdOrderPolynomialSpiral_type) throw IfcException("Unable to find find keyword in schema"); data_ = e; } -Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::IfcThirdOrderPolynomialSpiral(::Ifc4x3_rc3::IfcAxis2Placement* v1_Position, double v2_QubicTerm, boost::optional< double > v3_QuadraticTerm, boost::optional< double > v4_LinearTerm) : IfcSpiral((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcThirdOrderPolynomialSpiral_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Position));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_QubicTerm));data_->setArgument(1,attr);} if (v3_QuadraticTerm) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_QuadraticTerm));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_LinearTerm) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_LinearTerm));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } } +Ifc4x3_rc3::IfcThirdOrderPolynomialSpiral::IfcThirdOrderPolynomialSpiral(::Ifc4x3_rc3::IfcAxis2Placement* v1_Position, double v2_QubicTerm, boost::optional< double > v3_QuadraticTerm, boost::optional< double > v4_LinearTerm, boost::optional< double > v5_ConstantTerm) : IfcSpiral((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcThirdOrderPolynomialSpiral_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Position));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_QubicTerm));data_->setArgument(1,attr);} if (v3_QuadraticTerm) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_QuadraticTerm));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_LinearTerm) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_LinearTerm));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ConstantTerm) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ConstantTerm));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } } // Function implementations for IfcTimePeriod std::string Ifc4x3_rc3::IfcTimePeriod::StartTime() const { return *data_->getArgument(0); } diff --git a/src/ifcparse/Ifc4x3_rc3.h b/src/ifcparse/Ifc4x3_rc3.h index 3cf9b3ae6e..e6ecda950d 100644 --- a/src/ifcparse/Ifc4x3_rc3.h +++ b/src/ifcparse/Ifc4x3_rc3.h @@ -1,3 +1,28 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +/******************************************************************************** + * * + * This file has been generated from IFC4x3_RC2.exp. Do not make modifications * + * but instead modify the python script that has been used to generate this. * + * * + ********************************************************************************/ #ifndef IFC4X3_RC3_H #define IFC4X3_RC3_H @@ -22,7 +47,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 IfcAlignment; class IfcAlignmentCant; class IfcAlignmentCantSegment; class IfcAlignmentHorizontal; class IfcAlignmentHorizontalSegment; class IfcAlignmentParameterSegment; class IfcAlignmentSegment; class IfcAlignmentVertical; class IfcAlignmentVerticalSegment; 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 IfcAxis2PlacementLinear; class IfcBSplineCurve; class IfcBSplineCurveWithKnots; class IfcBSplineSurface; class IfcBSplineSurfaceWithKnots; class IfcBeam; class IfcBeamStandardCase; class IfcBeamType; class IfcBearing; class IfcBearingType; class IfcBlobTexture; class IfcBlock; class IfcBoiler; class IfcBoilerType; class IfcBooleanClippingResult; class IfcBooleanResult; class IfcBorehole; class IfcBoundaryCondition; class IfcBoundaryCurve; class IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping; class IfcBoundedCurve; class IfcBoundedSurface; class IfcBoundingBox; class IfcBoxedHalfSpace; class IfcBridge; class IfcBuilding; class IfcBuildingElementPart; class IfcBuildingElementPartType; class IfcBuildingElementProxy; class IfcBuildingElementProxyType; class IfcBuildingStorey; class IfcBuildingSystem; class IfcBuiltElement; class IfcBuiltElementType; class IfcBuiltSystem; class IfcBurner; class IfcBurnerType; class IfcCShapeProfileDef; class IfcCableCarrierFitting; class IfcCableCarrierFittingType; class IfcCableCarrierSegment; class IfcCableCarrierSegmentType; class IfcCableFitting; class IfcCableFittingType; class IfcCableSegment; class IfcCableSegmentType; class IfcCaissonFoundation; class IfcCaissonFoundationType; 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 IfcClothoid; 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 IfcConveyorSegment; class IfcConveyorSegmentType; class IfcCooledBeam; class IfcCooledBeamType; class IfcCoolingTower; class IfcCoolingTowerType; class IfcCoordinateOperation; class IfcCoordinateReferenceSystem; class IfcCosine; class IfcCostItem; class IfcCostSchedule; class IfcCostValue; class IfcCourse; class IfcCourseType; 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 IfcCurveSegment; class IfcCurveStyle; class IfcCurveStyleFont; class IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern; class IfcCylindricalSurface; class IfcDamper; class IfcDamperType; class IfcDeepFoundation; class IfcDeepFoundationType; class IfcDerivedProfileDef; class IfcDerivedUnit; class IfcDerivedUnitElement; class IfcDimensionalExponents; class IfcDirection; class IfcDirectrixCurveSweptAreaSolid; class IfcDirectrixDistanceSweptAreaSolid; class IfcDiscreteAccessory; class IfcDiscreteAccessoryType; class IfcDistributionBoard; class IfcDistributionBoardType; 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 IfcEarthworksCut; class IfcEarthworksElement; class IfcEarthworksFill; class IfcEdge; class IfcEdgeCurve; class IfcEdgeLoop; class IfcElectricAppliance; class IfcElectricApplianceType; class IfcElectricDistributionBoard; class IfcElectricDistributionBoardType; class IfcElectricFlowStorageDevice; class IfcElectricFlowStorageDeviceType; class IfcElectricFlowTreatmentDevice; class IfcElectricFlowTreatmentDeviceType; 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 IfcFacility; class IfcFacilityPart; 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 IfcGeomodel; class IfcGeoslice; class IfcGeotechnicalAssembly; class IfcGeotechnicalElement; class IfcGeotechnicalStratum; class IfcGradientCurve; class IfcGrid; class IfcGridAxis; class IfcGridPlacement; class IfcGroup; class IfcHalfSpaceSolid; class IfcHeatExchanger; class IfcHeatExchangerType; class IfcHumidifier; class IfcHumidifierType; class IfcIShapeProfileDef; class IfcImageTexture; class IfcImpactProtectionDevice; class IfcImpactProtectionDeviceType; class IfcInclinedReferenceSweptAreaSolid; 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 IfcKerb; class IfcKerbType; 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 IfcLinearElement; class IfcLinearPlacement; class IfcLinearPositioningElement; class IfcLiquidTerminal; class IfcLiquidTerminalType; class IfcLocalPlacement; class IfcLoop; class IfcManifoldSolidBrep; class IfcMapConversion; class IfcMappedItem; class IfcMarineFacility; 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 IfcMobileTelecommunicationsAppliance; class IfcMobileTelecommunicationsApplianceType; class IfcMonetaryUnit; class IfcMooringDevice; class IfcMooringDeviceType; class IfcMotorConnection; class IfcMotorConnectionType; class IfcNamedUnit; class IfcNavigationElement; class IfcNavigationElementType; class IfcObject; class IfcObjectDefinition; class IfcObjectPlacement; class IfcObjective; class IfcOccupant; class IfcOffsetCurve; class IfcOffsetCurve2D; class IfcOffsetCurve3D; class IfcOffsetCurveByDistances; class IfcOpenCrossProfileDef; 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 IfcPavement; class IfcPavementType; 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 IfcPlant; class IfcPlate; class IfcPlateStandardCase; class IfcPlateType; class IfcPoint; class IfcPointByDistanceExpression; class IfcPointOnCurve; class IfcPointOnSurface; class IfcPolyLoop; class IfcPolygonalBoundedHalfSpace; class IfcPolygonalFaceSet; class IfcPolyline; class IfcPolynomialCurve; class IfcPort; class IfcPositioningElement; class IfcPostalAddress; class IfcPreDefinedColour; class IfcPreDefinedCurveFont; class IfcPreDefinedItem; class IfcPreDefinedProperties; class IfcPreDefinedPropertySet; class IfcPreDefinedTextFont; class IfcPresentationItem; class IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle; class IfcPresentationStyle; 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 IfcRail; class IfcRailType; class IfcRailing; class IfcRailingType; class IfcRailway; 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 IfcReferent; class IfcRegularTimeSeries; class IfcReinforcedSoil; 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 IfcRelAssociatesProfileDef; 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 IfcRelPositions; 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 IfcRoad; class IfcRoof; class IfcRoofType; class IfcRoot; class IfcRoundedRectangleProfileDef; class IfcSIUnit; class IfcSanitaryTerminal; class IfcSanitaryTerminalType; class IfcSchedulingTime; class IfcSeamCurve; class IfcSecondOrderPolynomialSpiral; class IfcSectionProperties; class IfcSectionReinforcementProperties; class IfcSectionedSolid; class IfcSectionedSolidHorizontal; class IfcSectionedSpine; class IfcSectionedSurface; class IfcSegment; class IfcSegmentedReferenceCurve; class IfcSensor; class IfcSensorType; class IfcShadingDevice; class IfcShadingDeviceType; class IfcShapeAspect; class IfcShapeModel; class IfcShapeRepresentation; class IfcShellBasedSurfaceModel; class IfcSign; class IfcSignType; class IfcSignal; class IfcSignalType; class IfcSimpleProperty; class IfcSimplePropertyTemplate; class IfcSine; class IfcSite; class IfcSlab; class IfcSlabElementedCase; class IfcSlabStandardCase; class IfcSlabType; class IfcSlippageConnectionCondition; class IfcSolarDevice; class IfcSolarDeviceType; class IfcSolidModel; class IfcSolidStratum; 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 IfcSpiral; 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 IfcTendonConduit; class IfcTendonConduitType; 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 IfcThirdOrderPolynomialSpiral; class IfcTimePeriod; class IfcTimeSeries; class IfcTimeSeriesValue; class IfcTopologicalRepresentationItem; class IfcTopologyRepresentation; class IfcToroidalSurface; class IfcTrackElement; class IfcTrackElementType; class IfcTransformer; class IfcTransformerType; class IfcTransportElement; class IfcTransportElementType; class IfcTrapeziumProfileDef; class IfcTriangulatedFaceSet; class IfcTriangulatedIrregularNetwork; 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 IfcVibrationDamper; class IfcVibrationDamperType; class IfcVibrationIsolator; class IfcVibrationIsolatorType; class IfcVienneseBend; class IfcVirtualElement; class IfcVirtualGridIntersection; class IfcVoidStratum; class IfcVoidingFeature; class IfcWall; class IfcWallElementedCase; class IfcWallStandardCase; class IfcWallType; class IfcWasteTerminal; class IfcWasteTerminalType; class IfcWaterStratum; 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; +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 IfcAlignment; class IfcAlignmentCant; class IfcAlignmentCantSegment; class IfcAlignmentHorizontal; class IfcAlignmentHorizontalSegment; class IfcAlignmentParameterSegment; class IfcAlignmentSegment; class IfcAlignmentVertical; class IfcAlignmentVerticalSegment; 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 IfcAxis2PlacementLinear; class IfcBSplineCurve; class IfcBSplineCurveWithKnots; class IfcBSplineSurface; class IfcBSplineSurfaceWithKnots; class IfcBeam; class IfcBeamStandardCase; class IfcBeamType; class IfcBearing; class IfcBearingType; class IfcBlobTexture; class IfcBlock; class IfcBoiler; class IfcBoilerType; class IfcBooleanClippingResult; class IfcBooleanResult; class IfcBorehole; class IfcBoundaryCondition; class IfcBoundaryCurve; class IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping; class IfcBoundedCurve; class IfcBoundedSurface; class IfcBoundingBox; class IfcBoxedHalfSpace; class IfcBridge; class IfcBuilding; class IfcBuildingElementPart; class IfcBuildingElementPartType; class IfcBuildingElementProxy; class IfcBuildingElementProxyType; class IfcBuildingStorey; class IfcBuildingSystem; class IfcBuiltElement; class IfcBuiltElementType; class IfcBuiltSystem; class IfcBurner; class IfcBurnerType; class IfcCShapeProfileDef; class IfcCableCarrierFitting; class IfcCableCarrierFittingType; class IfcCableCarrierSegment; class IfcCableCarrierSegmentType; class IfcCableFitting; class IfcCableFittingType; class IfcCableSegment; class IfcCableSegmentType; class IfcCaissonFoundation; class IfcCaissonFoundationType; 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 IfcClothoid; 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 IfcConveyorSegment; class IfcConveyorSegmentType; class IfcCooledBeam; class IfcCooledBeamType; class IfcCoolingTower; class IfcCoolingTowerType; class IfcCoordinateOperation; class IfcCoordinateReferenceSystem; class IfcCosine; class IfcCostItem; class IfcCostSchedule; class IfcCostValue; class IfcCourse; class IfcCourseType; 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 IfcCurveSegment; class IfcCurveStyle; class IfcCurveStyleFont; class IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern; class IfcCylindricalSurface; class IfcDamper; class IfcDamperType; class IfcDeepFoundation; class IfcDeepFoundationType; class IfcDerivedProfileDef; class IfcDerivedUnit; class IfcDerivedUnitElement; class IfcDimensionalExponents; class IfcDirection; class IfcDirectrixCurveSweptAreaSolid; class IfcDirectrixDerivedReferenceSweptAreaSolid; class IfcDirectrixDistanceSweptAreaSolid; class IfcDiscreteAccessory; class IfcDiscreteAccessoryType; class IfcDistributionBoard; class IfcDistributionBoardType; 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 IfcEarthworksCut; class IfcEarthworksElement; class IfcEarthworksFill; class IfcEdge; class IfcEdgeCurve; class IfcEdgeLoop; class IfcElectricAppliance; class IfcElectricApplianceType; class IfcElectricDistributionBoard; class IfcElectricDistributionBoardType; class IfcElectricFlowStorageDevice; class IfcElectricFlowStorageDeviceType; class IfcElectricFlowTreatmentDevice; class IfcElectricFlowTreatmentDeviceType; 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 IfcFacility; class IfcFacilityPart; 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 IfcGeomodel; class IfcGeoslice; class IfcGeotechnicalAssembly; class IfcGeotechnicalElement; class IfcGeotechnicalStratum; class IfcGradientCurve; class IfcGrid; class IfcGridAxis; class IfcGridPlacement; class IfcGroup; class IfcHalfSpaceSolid; class IfcHeatExchanger; class IfcHeatExchangerType; class IfcHumidifier; class IfcHumidifierType; class IfcIShapeProfileDef; class IfcImageTexture; class IfcImpactProtectionDevice; class IfcImpactProtectionDeviceType; class IfcInclinedReferenceSweptAreaSolid; 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 IfcKerb; class IfcKerbType; 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 IfcLinearElement; class IfcLinearPlacement; class IfcLinearPositioningElement; class IfcLiquidTerminal; class IfcLiquidTerminalType; class IfcLocalPlacement; class IfcLoop; class IfcManifoldSolidBrep; class IfcMapConversion; class IfcMappedItem; class IfcMarineFacility; 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 IfcMobileTelecommunicationsAppliance; class IfcMobileTelecommunicationsApplianceType; class IfcMonetaryUnit; class IfcMooringDevice; class IfcMooringDeviceType; class IfcMotorConnection; class IfcMotorConnectionType; class IfcNamedUnit; class IfcNavigationElement; class IfcNavigationElementType; class IfcObject; class IfcObjectDefinition; class IfcObjectPlacement; class IfcObjective; class IfcOccupant; class IfcOffsetCurve; class IfcOffsetCurve2D; class IfcOffsetCurve3D; class IfcOffsetCurveByDistances; class IfcOpenCrossProfileDef; 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 IfcPavement; class IfcPavementType; 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 IfcPlant; class IfcPlate; class IfcPlateStandardCase; class IfcPlateType; class IfcPoint; class IfcPointByDistanceExpression; class IfcPointOnCurve; class IfcPointOnSurface; class IfcPolyLoop; class IfcPolygonalBoundedHalfSpace; class IfcPolygonalFaceSet; class IfcPolyline; class IfcPolynomialCurve; class IfcPort; class IfcPositioningElement; class IfcPostalAddress; class IfcPreDefinedColour; class IfcPreDefinedCurveFont; class IfcPreDefinedItem; class IfcPreDefinedProperties; class IfcPreDefinedPropertySet; class IfcPreDefinedTextFont; class IfcPresentationItem; class IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle; class IfcPresentationStyle; 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 IfcRail; class IfcRailType; class IfcRailing; class IfcRailingType; class IfcRailway; 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 IfcReferent; class IfcRegularTimeSeries; class IfcReinforcedSoil; 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 IfcRelAssociatesProfileDef; 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 IfcRelPositions; 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 IfcRoad; class IfcRoof; class IfcRoofType; class IfcRoot; class IfcRoundedRectangleProfileDef; class IfcSIUnit; class IfcSanitaryTerminal; class IfcSanitaryTerminalType; class IfcSchedulingTime; class IfcSeamCurve; class IfcSecondOrderPolynomialSpiral; class IfcSectionProperties; class IfcSectionReinforcementProperties; class IfcSectionedSolid; class IfcSectionedSolidHorizontal; class IfcSectionedSpine; class IfcSectionedSurface; class IfcSegment; class IfcSegmentedReferenceCurve; class IfcSensor; class IfcSensorType; class IfcShadingDevice; class IfcShadingDeviceType; class IfcShapeAspect; class IfcShapeModel; class IfcShapeRepresentation; class IfcShellBasedSurfaceModel; class IfcSign; class IfcSignType; class IfcSignal; class IfcSignalType; class IfcSimpleProperty; class IfcSimplePropertyTemplate; class IfcSine; class IfcSite; class IfcSlab; class IfcSlabElementedCase; class IfcSlabStandardCase; class IfcSlabType; class IfcSlippageConnectionCondition; class IfcSolarDevice; class IfcSolarDeviceType; class IfcSolidModel; class IfcSolidStratum; 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 IfcSpiral; 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 IfcTendonConduit; class IfcTendonConduitType; 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 IfcThirdOrderPolynomialSpiral; class IfcTimePeriod; class IfcTimeSeries; class IfcTimeSeriesValue; class IfcTopologicalRepresentationItem; class IfcTopologyRepresentation; class IfcToroidalSurface; class IfcTrackElement; class IfcTrackElementType; class IfcTransformer; class IfcTransformerType; class IfcTransportElement; class IfcTransportElementType; class IfcTrapeziumProfileDef; class IfcTriangulatedFaceSet; class IfcTriangulatedIrregularNetwork; 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 IfcVibrationDamper; class IfcVibrationDamperType; class IfcVibrationIsolator; class IfcVibrationIsolatorType; class IfcVienneseBend; class IfcVirtualElement; class IfcVirtualGridIntersection; class IfcVoidStratum; class IfcVoidingFeature; class IfcWall; class IfcWallElementedCase; class IfcWallStandardCase; class IfcWallType; class IfcWasteTerminal; class IfcWasteTerminalType; class IfcWaterStratum; 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. /// @@ -826,7 +851,7 @@ public: class IFC_PARSE_API IfcAlignmentCantSegmentTypeEnum : public IfcUtil::IfcBaseType { public: - typedef enum {IfcAlignmentCantSegmentType_CONSTANTCANT, IfcAlignmentCantSegmentType_LINEARTRANSITION, IfcAlignmentCantSegmentType_BIQUADRATICPARABOLA, IfcAlignmentCantSegmentType_BLOSSCURVE, IfcAlignmentCantSegmentType_COSINECURVE, IfcAlignmentCantSegmentType_SINECURVE, IfcAlignmentCantSegmentType_VIENNESEBEND} Value; + typedef enum {IfcAlignmentCantSegmentType_CONSTANTCANT, IfcAlignmentCantSegmentType_LINEARTRANSITION, IfcAlignmentCantSegmentType_HELMERTCURVE, IfcAlignmentCantSegmentType_BLOSSCURVE, IfcAlignmentCantSegmentType_COSINECURVE, IfcAlignmentCantSegmentType_SINECURVE, IfcAlignmentCantSegmentType_VIENNESEBEND} Value; static const char* ToString(Value v); static Value FromString(const std::string& s); @@ -840,7 +865,7 @@ public: class IFC_PARSE_API IfcAlignmentHorizontalSegmentTypeEnum : public IfcUtil::IfcBaseType { public: - typedef enum {IfcAlignmentHorizontalSegmentType_LINE, IfcAlignmentHorizontalSegmentType_CIRCULARARC, IfcAlignmentHorizontalSegmentType_CLOTHOID, IfcAlignmentHorizontalSegmentType_CUBIC, IfcAlignmentHorizontalSegmentType_BIQUADRATICPARABOLA, IfcAlignmentHorizontalSegmentType_BLOSSCURVE, IfcAlignmentHorizontalSegmentType_CUBICSPIRAL, IfcAlignmentHorizontalSegmentType_COSINECURVE, IfcAlignmentHorizontalSegmentType_SINECURVE, IfcAlignmentHorizontalSegmentType_VIENNESEBEND} Value; + typedef enum {IfcAlignmentHorizontalSegmentType_LINE, IfcAlignmentHorizontalSegmentType_CIRCULARARC, IfcAlignmentHorizontalSegmentType_CLOTHOID, IfcAlignmentHorizontalSegmentType_CUBIC, IfcAlignmentHorizontalSegmentType_HELMERTCURVE, IfcAlignmentHorizontalSegmentType_BLOSSCURVE, IfcAlignmentHorizontalSegmentType_CUBICSPIRAL, IfcAlignmentHorizontalSegmentType_COSINECURVE, IfcAlignmentHorizontalSegmentType_SINECURVE, IfcAlignmentHorizontalSegmentType_VIENNESEBEND} Value; static const char* ToString(Value v); static Value FromString(const std::string& s); @@ -4856,6 +4881,20 @@ public: IfcOutletTypeEnum (const std::string& v); operator Value() const; }; +class IFC_PARSE_API IfcPavementTypeEnum : public IfcUtil::IfcBaseType { + +public: + typedef enum {IfcPavementType_FLEXIBLE, IfcPavementType_RIGID, IfcPavementType_USERDEFINED, IfcPavementType_NOTDEFINED} Value; + static const char* ToString(Value v); + static Value FromString(const std::string& s); + + virtual const IfcParse::enumeration_type& declaration() const; + static const IfcParse::enumeration_type& Class(); + IfcPavementTypeEnum (IfcEntityInstanceData* e); + IfcPavementTypeEnum (Value v); + IfcPavementTypeEnum (const std::string& v); + operator Value() const; +}; class IFC_PARSE_API IfcPerformanceHistoryTypeEnum : public IfcUtil::IfcBaseType { /// This enumeration is used to identify the primary purpose of performance history. The IfcPerformanceHistoryTypeEnum contains the following: /// @@ -14664,16 +14703,12 @@ public: bool hasEndCantRight() const; double EndCantRight() const; void setEndCantRight(double v); - /// Whether the optional attribute SmoothingLength is defined for this IfcAlignmentCantSegment - bool hasSmoothingLength() const; - double SmoothingLength() const; - void setSmoothingLength(double v); ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value PredefinedType() const; void setPredefinedType(::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value v); virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcAlignmentCantSegment (IfcEntityInstanceData* e); - IfcAlignmentCantSegment (boost::optional< std::string > v1_StartTag, boost::optional< std::string > v2_EndTag, double v3_StartDistAlong, double v4_HorizontalLength, double v5_StartCantLeft, boost::optional< double > v6_EndCantLeft, double v7_StartCantRight, boost::optional< double > v8_EndCantRight, boost::optional< double > v9_SmoothingLength, ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value v10_PredefinedType); + IfcAlignmentCantSegment (boost::optional< std::string > v1_StartTag, boost::optional< std::string > v2_EndTag, double v3_StartDistAlong, double v4_HorizontalLength, double v5_StartCantLeft, boost::optional< double > v6_EndCantLeft, double v7_StartCantRight, boost::optional< double > v8_EndCantRight, ::Ifc4x3_rc3::IfcAlignmentCantSegmentTypeEnum::Value v9_PredefinedType); typedef IfcTemplatedEntityList< IfcAlignmentCantSegment > list; }; @@ -26298,14 +26333,14 @@ public: class IFC_PARSE_API IfcSectionedSolidHorizontal : public IfcSectionedSolid { public: - IfcEntityList::ptr CrossSectionPositions() const; - void setCrossSectionPositions(IfcEntityList::ptr v); + IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcAxis2PlacementLinear >::ptr CrossSectionPositions() const; + void setCrossSectionPositions(IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcAxis2PlacementLinear >::ptr v); bool FixedAxisVertical() const; void setFixedAxisVertical(bool v); virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcSectionedSolidHorizontal (IfcEntityInstanceData* e); - IfcSectionedSolidHorizontal (::Ifc4x3_rc3::IfcCurve* v1_Directrix, IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcProfileDef >::ptr v2_CrossSections, IfcEntityList::ptr v3_CrossSectionPositions, bool v4_FixedAxisVertical); + IfcSectionedSolidHorizontal (::Ifc4x3_rc3::IfcCurve* v1_Directrix, IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcProfileDef >::ptr v2_CrossSections, IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcAxis2PlacementLinear >::ptr v3_CrossSectionPositions, bool v4_FixedAxisVertical); typedef IfcTemplatedEntityList< IfcSectionedSolidHorizontal > list; }; @@ -27808,10 +27843,14 @@ public: bool hasLinearTerm() const; double LinearTerm() const; void setLinearTerm(double v); + /// Whether the optional attribute ConstantTerm is defined for this IfcThirdOrderPolynomialSpiral + bool hasConstantTerm() const; + double ConstantTerm() const; + void setConstantTerm(double v); virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcThirdOrderPolynomialSpiral (IfcEntityInstanceData* e); - IfcThirdOrderPolynomialSpiral (::Ifc4x3_rc3::IfcAxis2Placement* v1_Position, double v2_QubicTerm, boost::optional< double > v3_QuadraticTerm, boost::optional< double > v4_LinearTerm); + IfcThirdOrderPolynomialSpiral (::Ifc4x3_rc3::IfcAxis2Placement* v1_Position, double v2_QubicTerm, boost::optional< double > v3_QuadraticTerm, boost::optional< double > v4_LinearTerm, boost::optional< double > v5_ConstantTerm); typedef IfcTemplatedEntityList< IfcThirdOrderPolynomialSpiral > list; }; @@ -29849,6 +29888,15 @@ public: IfcDeepFoundationType (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType); typedef IfcTemplatedEntityList< IfcDeepFoundationType > list; }; + +class IFC_PARSE_API IfcDirectrixDerivedReferenceSweptAreaSolid : public IfcFixedReferenceSweptAreaSolid { +public: + virtual const IfcParse::entity& declaration() const; + static const IfcParse::entity& Class(); + IfcDirectrixDerivedReferenceSweptAreaSolid (IfcEntityInstanceData* e); + IfcDirectrixDerivedReferenceSweptAreaSolid (::Ifc4x3_rc3::IfcProfileDef* v1_SweptArea, ::Ifc4x3_rc3::IfcAxis2Placement3D* v2_Position, ::Ifc4x3_rc3::IfcCurve* v3_Directrix, ::Ifc4x3_rc3::IfcCurveMeasureSelect* v4_StartParam, ::Ifc4x3_rc3::IfcCurveMeasureSelect* v5_EndParam, ::Ifc4x3_rc3::IfcDirection* v6_FixedReference); + typedef IfcTemplatedEntityList< IfcDirectrixDerivedReferenceSweptAreaSolid > list; +}; /// Definition from IAI: The /// IfcDistributionElementType defines a list of commonly /// shared property set definitions of an element and an optional set @@ -33213,12 +33261,12 @@ public: class IFC_PARSE_API IfcPavementType : public IfcBuiltElementType { public: - bool Flexible() const; - void setFlexible(bool v); + ::Ifc4x3_rc3::IfcPavementTypeEnum::Value PredefinedType() const; + void setPredefinedType(::Ifc4x3_rc3::IfcPavementTypeEnum::Value v); virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcPavementType (IfcEntityInstanceData* e); - IfcPavementType (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, bool v10_Flexible); + IfcPavementType (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< IfcTemplatedEntityList< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcPavementTypeEnum::Value v10_PredefinedType); typedef IfcTemplatedEntityList< IfcPavementType > list; }; /// IfcPerformanceHistory is used to document the actual performance of an occurrence instance over time. In practice, performance-related data are generally not easy to obtain as they can originate from different sources (predicted, simulated, or measured) and occur during different stages of the building life-cycle. Such time-related data cover a large spectrum, including meteorological data, schedules, operational status measurements, trend reports, etc. @@ -38029,14 +38077,10 @@ public: class IFC_PARSE_API IfcAlignmentHorizontal : public IfcLinearElement { public: - /// Whether the optional attribute StartDistAlong is defined for this IfcAlignmentHorizontal - bool hasStartDistAlong() const; - double StartDistAlong() const; - void setStartDistAlong(double v); virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcAlignmentHorizontal (IfcEntityInstanceData* e); - IfcAlignmentHorizontal (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation, boost::optional< double > v8_StartDistAlong); + IfcAlignmentHorizontal (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation); typedef IfcTemplatedEntityList< IfcAlignmentHorizontal > list; }; @@ -44366,14 +44410,14 @@ public: class IFC_PARSE_API IfcPavement : public IfcBuiltElement { public: - /// Whether the optional attribute Flexible is defined for this IfcPavement - bool hasFlexible() const; - bool Flexible() const; - void setFlexible(bool v); + /// Whether the optional attribute PredefinedType is defined for this IfcPavement + bool hasPredefinedType() const; + ::Ifc4x3_rc3::IfcPavementTypeEnum::Value PredefinedType() const; + void setPredefinedType(::Ifc4x3_rc3::IfcPavementTypeEnum::Value v); virtual const IfcParse::entity& declaration() const; static const IfcParse::entity& Class(); IfcPavement (IfcEntityInstanceData* e); - IfcPavement (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag, boost::optional< bool > v9_Flexible); + IfcPavement (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag, boost::optional< ::Ifc4x3_rc3::IfcPavementTypeEnum::Value > v9_PredefinedType); typedef IfcTemplatedEntityList< IfcPavement > list; }; /// A pile is a slender timber, concrete, or steel structural element, driven, jetted, or otherwise embedded on end in the ground for the purpose of supporting a load. From f2f4057c98338170277708453a676bcbc0371843 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Thu, 22 Jul 2021 11:48:27 +0200 Subject: [PATCH 045/168] #1579 Fix attribute assignment to enum types --- src/ifcparse/IfcParse.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 62ad5a3f00..833d3d6273 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1216,8 +1216,10 @@ void IfcEntityInstanceData::setArgument(size_t i, Argument* a, IfcUtil::Argument // Remove leading and trailing '.' enum_literal = enum_literal.substr(1, enum_literal.size() - 2); - const IfcParse::enumeration_type* enum_type = type()->as_entity()-> - attribute_by_index(i)->type_of_attribute()->as_named_type()->declared_type()->as_enumeration_type(); + const IfcParse::enumeration_type* enum_type = type()->as_enumeration_type() + ? type()->as_enumeration_type() + : type()->as_entity()->attribute_by_index(i)->type_of_attribute()-> + as_named_type()->declared_type()->as_enumeration_type(); std::vector::const_iterator it = std::find( enum_type->enumeration_items().begin(), From d2a1e0193bcce1a0949a7a824b03614687e45516 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 22 Jul 2021 20:41:40 +1000 Subject: [PATCH 046/168] Fix #1574. Fix #1578. Bug where deprecated functions were used in Python 3.9 for drawing generation. --- src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py | 8 ++++---- src/blenderbim/blenderbim/bim/operator.py | 3 --- .../ifcopenshell/api/geometry/add_representation.py | 4 ++-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py index 45fb2c5fe2..c7f9ae1f22 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py @@ -28,7 +28,7 @@ class External(svgwrite.container.Group): # Remove namespace ns = u"{http://www.w3.org/2000/svg}" nsl = len(ns) - for elem in self.xml.getiterator(): + for elem in self.xml.iter(): if elem.tag.startswith(ns): elem.tag = elem.tag[nsl:] @@ -85,19 +85,19 @@ class SvgWriter: def add_markers(self): tree = ET.parse(os.path.join(self.data_dir, "templates", "markers.svg")) root = tree.getroot() - for child in root.getchildren(): + for child in root: self.svg.defs.add(External(child)) def add_symbols(self): tree = ET.parse(os.path.join(self.data_dir, "templates", "symbols.svg")) root = tree.getroot() - for child in root.getchildren(): + for child in root: self.svg.defs.add(External(child)) def add_patterns(self): tree = ET.parse(os.path.join(self.data_dir, "templates", "patterns.svg")) root = tree.getroot() - for child in root.getchildren(): + for child in root: self.svg.defs.add(External(child)) def draw_background_image(self): diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py index ccf51aee5d..9c6b5b31f7 100644 --- a/src/blenderbim/blenderbim/bim/operator.py +++ b/src/blenderbim/blenderbim/bim/operator.py @@ -5,9 +5,6 @@ import json import logging import webbrowser import ifcopenshell - -# Deleting the below drawing import breaks svgwrite's ElementTree appending because ... magic? -import blenderbim.bim.module.drawing from . import export_ifc from . import import_ifc from . import schema diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py index 16896a254e..1b5c6684a3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py @@ -204,12 +204,12 @@ class Usecase: def create_variable_representation(self): if isinstance(self.settings["geometry"], bpy.types.Curve): return self.create_curve3d_representation() + elif isinstance(self.settings["geometry"], bpy.types.Camera): + return self.create_camera_block_representation() elif not len(self.settings["geometry"].polygons): return self.create_curve3d_representation() elif self.settings["is_point_cloud"]: return self.create_point_cloud_representation() - elif isinstance(self.settings["geometry"], bpy.types.Camera): - return self.create_camera_block_representation() elif self.settings["ifc_representation_class"] == "IfcExtrudedAreaSolid/IfcRectangleProfileDef": return self.create_rectangle_extrusion_representation() elif self.settings["ifc_representation_class"] == "IfcExtrudedAreaSolid/IfcCircleProfileDef": From c04afe1a4b1a4039336d0b8ae6320046fd8a2bf4 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jul 2021 10:41:08 +1000 Subject: [PATCH 047/168] Minor fix. --- src/blenderbim/blenderbim/bim/module/material/operator.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index 3cb818f5c1..3c70e9a5ca 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -205,6 +205,7 @@ class AddProfile(bpy.types.Operator): }, ) Data.load_profiles() + ProfileData.load(self.file) return {"FINISHED"} @@ -223,6 +224,7 @@ class RemoveProfile(bpy.types.Operator): self.file = IfcStore.get_file() ifcopenshell.api.run("material.remove_profile", self.file, **{"profile": self.file.by_id(self.profile)}) Data.load_profiles() + ProfileData.load(self.file) return {"FINISHED"} @@ -282,6 +284,7 @@ class ReorderMaterialSetItem(bpy.types.Operator): Data.load_layers() elif material_set.is_a("IfcMaterialProfileSet"): Data.load_profiles() + ProfileData.load(self.file) elif material_set.is_a("IfcMaterialList"): Data.load_lists() return {"FINISHED"} From beb5dda6dd6e2f67b9755666897d1e4a406f1a0d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jul 2021 16:10:38 +1000 Subject: [PATCH 048/168] New FM utility module for selecting maintainable assets according to different FM definitions --- .../ifcopenshell/util/fm.py | 107 ++++++++++++++++++ .../ifcopenshell/util/selector.py | 72 +----------- 2 files changed, 112 insertions(+), 67 deletions(-) create mode 100644 src/ifcopenshell-python/ifcopenshell/util/fm.py diff --git a/src/ifcopenshell-python/ifcopenshell/util/fm.py b/src/ifcopenshell-python/ifcopenshell/util/fm.py new file mode 100644 index 0000000000..b0ac0cba43 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/util/fm.py @@ -0,0 +1,107 @@ +cobie_type_classes = [ + "IfcDoorStyle", + "IfcBuildingElementProxyType", + "IfcChimneyType", + "IfcCoveringType", + "IfcDoorType", + "IfcFootingType", + "IfcPileType", + "IfcRoofType", + "IfcShadingDeviceType", + "IfcWindowType", + "IfcDistributionControlElementType", + "IfcDistributionChamberElementType", + "IfcEnergyConversionDeviceType", + "IfcFlowControllerType", + "IfcFlowMovingDeviceType", + "IfcFlowStorageDeviceType", + "IfcFlowTerminalType", + "IfcFlowTreatmentDeviceType", + "IfcElementAssemblyType", + "IfcBuildingElementPartType", + "IfcDiscreteAccessoryType", + "IfcMechanicalFastenerType", + "IfcReinforcingElementType", + "IfcVibrationIsolatorType", + "IfcFurnishingElementType", + "IfcGeographicElementType", + "IfcTransportElementType", + "IfcSpatialZoneType", + "IfcWindowStyle", +] + +cobie_component_classes = [ + "IfcBuildingElementProxy", + "IfcChimney", + "IfcCovering", + "IfcDoor", + "IfcShadingDevice", + "IfcWindow", + "IfcDistributionControlElement", + "IfcDistributionChamberElement", + "IfcEnergyConversionDevice", + "IfcFlowController", + "IfcFlowMovingDevice", + "IfcFlowStorageDevice", + "IfcFlowTerminal", + "IfcFlowTreatmentDevice", + "IfcDiscreteAccessory", + "IfcTendon", + "IfcTendonAnchor", + "IfcVibrationIsolator", + "IfcFurnishingElement", + "IfcGeographicElement", + "IfcTransportElement", +] + +fmhem_classes = [ + "IfcDoorStyle", + "IfcWindowStyle", + "IfcDoorType", + "IfcWindowType", + "IfcRoofType", + "IfcShadingDeviceType", + "IfcDistributionControlElementType", + "IfcEnergyConversionDeviceType", + "IfcFlowControllerType", + "IfcJunctionBoxType", + "IfcFlowMovingDeviceType", + "IfcFlowStorageDeviceType", + "IfcFlowTerminalType", + "IfcFlowTreatmentDeviceType", + "IfcFurnishingElementType", + "IfcTransportElementType", +] + + +def get_cobie_types(ifc_file): + elements = [] + for ifc_class in cobie_type_classes: + try: + elements += self.file.by_type(ifc_class) + except: + pass + return elements + + +def get_cobie_components(ifc_file): + elements = [] + for ifc_class in cobie_component_classes: + try: + elements += self.file.by_type(ifc_class) + except: + pass + return elements + + +def get_fmhem_types(ifc_file): + elements = [] + for ifc_class in fmhem_classes: + try: + if ifc_class == "IfcEnergyConversionDeviceType": + elements += [e for e in ifc_file.by_type(ifc_class) if not e.is_a("IfcCooledBeamType")] + else: + elements += ifc_file.by_type(ifc_class) + except: + pass + return elements diff --git a/src/ifcopenshell-python/ifcopenshell/util/selector.py b/src/ifcopenshell-python/ifcopenshell/util/selector.py index d56d69ce83..dd7fc99c4d 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/selector.py +++ b/src/ifcopenshell-python/ifcopenshell/util/selector.py @@ -1,62 +1,8 @@ import ifcopenshell.util +import ifcopenshell.util.fm import ifcopenshell.util.element import lark -cobie_type_assets = [ - "IfcDoorStyle", - "IfcBuildingElementProxyType", - "IfcChimneyType", - "IfcCoveringType", - "IfcDoorType", - "IfcFootingType", - "IfcPileType", - "IfcRoofType", - "IfcShadingDeviceType", - "IfcWindowType", - "IfcDistributionControlElementType", - "IfcDistributionChamberElementType", - "IfcEnergyConversionDeviceType", - "IfcFlowControllerType", - "IfcFlowMovingDeviceType", - "IfcFlowStorageDeviceType", - "IfcFlowTerminalType", - "IfcFlowTreatmentDeviceType", - "IfcElementAssemblyType", - "IfcBuildingElementPartType", - "IfcDiscreteAccessoryType", - "IfcMechanicalFastenerType", - "IfcReinforcingElementType", - "IfcVibrationIsolatorType", - "IfcFurnishingElementType", - "IfcGeographicElementType", - "IfcTransportElementType", - "IfcSpatialZoneType", - "IfcWindowStyle", -] -cobie_component_assets = [ - "IfcBuildingElementProxy", - "IfcChimney", - "IfcCovering", - "IfcDoor", - "IfcShadingDevice", - "IfcWindow", - "IfcDistributionControlElement", - "IfcDistributionChamberElement", - "IfcEnergyConversionDevice", - "IfcFlowController", - "IfcFlowMovingDevice", - "IfcFlowStorageDevice", - "IfcFlowTerminal", - "IfcFlowTreatmentDevice", - "IfcDiscreteAccessory", - "IfcTendon", - "IfcTendonAnchor", - "IfcVibrationIsolator", - "IfcFurnishingElement", - "IfcGeographicElement", - "IfcTransportElement", -] - class Selector: def parse(self, ifc_file, query): @@ -174,19 +120,11 @@ class Selector: def get_class_selector(self, class_selector): if class_selector.children[0] == "COBie": - elements = [] - for ifc_class in cobie_component_assets: - try: - elements += self.file.by_type(ifc_class) - except: - pass + ifcopenshell.util.fm.get_cobie_components(self.file) elif class_selector.children[0] == "COBieType": - elements = [] - for ifc_class in cobie_type_assets: - try: - elements += self.file.by_type(ifc_class) - except: - pass + ifcopenshell.util.fm.get_cobie_types(self.file) + elif class_selector.children[0] == "FMHEM": + ifcopenshell.util.fm.get_fmhem_types(self.file) else: elements = self.file.by_type(class_selector.children[0]) if len(class_selector.children) > 1 and class_selector.children[1].data == "filter": From 16fd06a4e93565583a30279b81096cf625161d28 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jul 2021 18:03:07 +1000 Subject: [PATCH 049/168] Initial commit for half implemented IfcFM library to support new FM exchange requirements and related FM tasks. Initially just an IfcCOBie replacement but will grow. --- src/ifcfm/README.md | 8 + src/ifcfm/ifcfm/parser.py | 372 ++++++++++++++++++++++++ src/ifcfm/ifcfm/writer.py | 581 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 961 insertions(+) create mode 100644 src/ifcfm/README.md create mode 100644 src/ifcfm/ifcfm/parser.py create mode 100644 src/ifcfm/ifcfm/writer.py diff --git a/src/ifcfm/README.md b/src/ifcfm/README.md new file mode 100644 index 0000000000..a24ed0ce13 --- /dev/null +++ b/src/ifcfm/README.md @@ -0,0 +1,8 @@ +# IfcFM + +IfcFM is a library that handles the extraction and analysis of IFC data for the +purposes of facility management. + +It is currently a prototype and will supersede the IfcCOBie library. It is +planned to support workflows related to the old COBie standard, as well as +upcoming IFC Facility Management related MVDs. diff --git a/src/ifcfm/ifcfm/parser.py b/src/ifcfm/ifcfm/parser.py new file mode 100644 index 0000000000..9ce0b85f7f --- /dev/null +++ b/src/ifcfm/ifcfm/parser.py @@ -0,0 +1,372 @@ +import datetime +import ifcopenshell +import ifcopenshell.util.fm +import ifcopenshell.util.selector +import ifcopenshell.util.date +import ifcopenshell.util.schema + + +class Parser: + def __init__(self, logger): + self.logger = logger + self.file = None + self.sheets = [ + "contacts", + "facilities", + "floors", + "spaces", + "zones", + "types", + "components", + "systems", + "assemblies", + "connections", + "spares", + "resources", + "jobs", + "impacts", + "documents", + "attributes", + "coordinates", + "issues", + ] + for sheet in self.sheets: + setattr(self, sheet, {}) + self.picklists = { + "Category-Role": [], + "Category-Facility": [], + "FloorType": [], + "Category-Space": [], + "ZoneType": [], + "Category-Product": [], + "AssetType": [], + "DurationUnit": ["day"], # See note about hardcoded day below + "Category-Element": [], + "SpareType": [], + "ApprovalBy": [], + "StageType": [], + "objType": [], + } + self.default_date = (datetime.datetime(1970, 1, 1) + datetime.timedelta(seconds=-2177452801)).isoformat() + + def parse(self, files): + self.files = files + # self.file = ifcopenshell.open(file) + # self.type_assets = self.selector.parse(self.file, type_query) + # self.component_assets = self.selector.parse(self.file, component_query) + + self.get_contacts() + self.get_facilities() + self.get_floors() + self.get_spaces() + self.get_zones() + self.get_types() + self.get_components() + self.get_systems() + # self.get_assemblies() + # self.get_connections() + # self.get_spares() + # self.get_resources() + # self.get_jobs() + # self.get_impacts() + self.get_documents() + # self.get_attributes() + # self.get_coordinates() + # self.get_issues() + + def get_contacts(self): + for element in self.files["arch"].by_type("IfcOrganization"): + if "IfcApplication" in [e.is_a() for e in self.files["arch"].get_inverse(element)]: + continue + name = element.Name + self.contacts[name] = self.get_organisation(element) + + def get_organisation(self, element): + return { + "Name": element.Name, + "Category": self.get_organisation_category(element), + "Email": self.get_organisation_address(element, "ElectronicMailAddresses"), + "Phone": self.get_organisation_address(element, "TelephoneNumbers"), + "Department": self.get_organisation_address(element, "InternalLocation"), + "Street": self.get_organisation_address(element, "AddressLines"), + "PostalBox": self.get_organisation_address(element, "PostalBox"), + "Town": self.get_organisation_address(element, "Town"), + "StateRegion": self.get_organisation_address(element, "Region"), + "PostalCode": self.get_organisation_address(element, "PostalCode"), + "Country": self.get_organisation_address(element, "Country"), + "CompanyURL": self.get_organisation_address(element, "WWWHomePageURL"), + } + + def get_organisation_category(self, element): + for role in element.Roles or []: + if role.UserDefinedRole: + return role.UserDefinedRole + + def get_organisation_address(self, element, name): + for address in element.Addresses or []: + if hasattr(address, name) and getattr(address, name, None): + result = getattr(address, name) + if isinstance(result, tuple): + return result[0] + return result + + def get_facilities(self): + element = self.files["arch"].by_type("IfcBuilding")[0] + self.facilities[element.Name] = { + "Name": element.Name, + "AuthorOrganizationName": element.OwnerHistory.OwningUser.TheOrganization.Name, + "AuthorDate": ifcopenshell.util.date.ifc2datetime( + self.files["arch"].by_type("IfcProject")[0].OwnerHistory.CreationDate + ).isoformat(), + "Category": self.get_classification(element), + "ProjectName": element.Decomposes[0].RelatingObject.Decomposes[0].RelatingObject.Name, + "SiteName": element.Decomposes[0].RelatingObject.Name, + "LinearUnits": "millimeters", + "AreaUnits": "square meters", + "AreaMeasurement": "TODO", + "Phase": element.Decomposes[0].RelatingObject.Decomposes[0].RelatingObject.Phase, + "ModelSoftware": element.OwnerHistory.OwningApplication.ApplicationFullName, + "ModelProjectID": self.files["arch"].by_type("IfcProject")[0].GlobalId, + "ModelSiteID": element.Decomposes[0].RelatingObject.GlobalId, + "ModelBuildingID": element.GlobalId, + } + + def get_classification(self, element): + rel = [r for r in element.HasAssociations or [] if r.is_a("IfcRelAssociatesClassification")] + if rel: + classification = rel[0].RelatingClassification + if getattr(classification, "Identification", None) and getattr(classification, "Name", None): + return "{}:{}".format(classification.Identification, classification.Name) + elif getattr(classification, "ItemReference", None) and getattr(classification, "Name", None): + return "{}:{}".format(classification.ItemReference, classification.Name) + + def get_floors(self): + storeys = self.files["arch"].by_type("IfcBuildingStorey") + self.floors["Site"] = { + "Name": "Site", + "AuthorOrganizationName": storeys[0].OwnerHistory.OwningUser.TheOrganization.Name, + "AuthorDate": datetime.datetime.now().replace(microsecond=0).isoformat(), + "Category": "Site", + "ModelSoftware": "IfcFM", + "ModelObject": "IfcExternalSpatialElement", + "ModelID": ifcopenshell.guid.new(), # TODO + "Elevation": None, + } + for element in storeys: + self.get_floor(element) + + def get_floor(self, element): + name = element.Name + elevation = element.ObjectPlacement.RelativePlacement.Location.Coordinates[2] + self.floors[name] = { + "Name": name, + "AuthorOrganizationName": element.OwnerHistory.OwningUser.TheOrganization.Name, + "AuthorDate": ifcopenshell.util.date.ifc2datetime(element.OwnerHistory.CreationDate).isoformat(), + "Category": "Level", + "ModelSoftware": element.OwnerHistory.OwningApplication.ApplicationFullName, + "ModelObject": element.is_a(), + "ModelID": element.GlobalId, + "Elevation": elevation, + } + + def get_spaces(self): + primary_keys = [] + for element in self.files["arch"].by_type("IfcSpace"): + name = element.Name + primary_keys.append(name) + # TODO: not correct mapping + psets = ifcopenshell.util.element.get_psets(element) + + category = None + if "Data" in psets and "COBie.Space.Category" in psets["Data"]: + category = psets["Data"]["COBie.Space.Category"].replace(" : ", ":") + + usable_height = None + if "Data" in psets and "COBie.Space.Category" in psets["Data"]: + usable_height = round(psets["Data"]["COBie.Space.UsableHeight"], 2) or None + + area_gross = None + if "Data" in psets and "COBie.Space.GrossArea" in psets["Data"]: + area_gross = round(psets["Data"]["COBie.Space.GrossArea"], 2) or None + + area_net = None + if "Data" in psets and "COBie.Space.NetArea" in psets["Data"]: + area_net = round(psets["Data"]["COBie.Space.NetArea"], 2) or None + + self.spaces[name] = { + "Name": name, + "AuthorOrganizationName": element.OwnerHistory.OwningUser.TheOrganization.Name, + "AuthorDate": ifcopenshell.util.date.ifc2datetime(element.OwnerHistory.CreationDate).isoformat(), + "Category": category, + "LevelName": element.Decomposes[0].RelatingObject.Name, + "Description": element.LongName, + "ModelSoftware": element.OwnerHistory.OwningApplication.ApplicationFullName, + "ModelID": element.GlobalId, + "BuildingRoomNumber": None, + "UsableHeight": usable_height, + "AreaGross": area_gross, + "AreaNet": area_net, + } + + def get_zones(self): + for element in self.files["arch"].by_type("IfcZone"): + for rel in element.IsGroupedBy: + for space in rel.RelatedObjects: + if not space.is_a("IfcSpace"): + continue + self.zones[element.Name + space.Name] = { + "Name": element.Name, + "AuthorOrganizationName": "Cox Architecture", + "AuthorDate": ifcopenshell.util.date.ifc2datetime( + element.OwnerHistory.CreationDate + ).isoformat(), + "Category": "Occupancy", + "SpaceName": space.Name, + "ModelSoftware": element.OwnerHistory.OwningApplication.ApplicationFullName, + "ModelID": element.GlobalId, + "ParentZoneName": None, + } + + def get_systems(self): + for discipline, ifc in self.files.items(): + #if discipline == "arch": + # continue + for element in ifc.by_type("IfcSystem"): + name = element.Name + self.systems[name] = { + "Name": name, + "AuthorOrganizationName": "Fredon", + "AuthorDate": ifcopenshell.util.date.ifc2datetime(element.OwnerHistory.CreationDate).isoformat(), + "Category": None, + "ModelSoftware": element.OwnerHistory.OwningApplication.ApplicationFullName, + "ModelID": element.GlobalId, + "ParentSystemName": None, + } + + def get_types(self): + for discipline, ifc in self.files.items(): + self.get_types_from_file(discipline) + + def get_types_from_file(self, ifc_file): + primary_keys = [] + for element in ifcopenshell.util.fm.get_fmhem_types(self.files[ifc_file]): + name = element.Name + primary_keys.append(name) + + psets = ifcopenshell.util.element.get_psets(element) + + category = None + if "Data" in psets and "COBie.Type.Category" in psets["Data"]: + if ":" in psets["Data"]["COBie.Type.Category"]: + category = psets["Data"]["COBie.Type.Category"].replace(" : ", ":") + + self.types[name] = { + "Name": name, + "AuthorOrganizationName": element.OwnerHistory.OwningUser.TheOrganization.Name, + "AuthorDate": ifcopenshell.util.date.ifc2datetime(element.OwnerHistory.CreationDate).isoformat(), + "Category": category, + "ProcurementMethod": None, + "Description": element.Description, + "ManufacturerOrganizationName": None, + "SupplierOrganizationName": None, + "ModelNumber": None, + "WarrantyOrganizationName": None, + "WarrantyDuration": None, + "ModelSoftware": element.OwnerHistory.OwningApplication.ApplicationFullName, + "ModelObject": element.is_a(), + "ModelID": element.GlobalId, + "SpecificationSection": None, + "SubmittalID": None, + "ProductURL": None, + } + + def get_components(self): + org_map = {"arch": "Cox Architecture", "arch": "Bates Smart", "elec": "Fredon", "fire": "Premier Fire"} + for discipline, ifc in self.files.items(): + self.get_components_from_file(discipline) + + def get_components_from_file(self, ifc_file): + for element_type in ifcopenshell.util.fm.get_fmhem_types(self.files[ifc_file]): + for element in element_type.ObjectTypeOf[0].RelatedObjects: + name = element.Name + + system = None + for rel in element.HasAssignments: + if rel.is_a("IfcRelAssignsToGroup") and rel.RelatingGroup.is_a("IfcSystem"): + system = rel.RelatingGroup.Name + + space_name = None + + # space = element.ContainedInStructure[0].RelatingStructure + # if space.is_a("IfcSpace"): + # space_name = space.Name + + psets = ifcopenshell.util.element.get_psets(element) + if "Data" in psets and "COBie.Component.Space" in psets["Data"]: + space_name = psets["Data"]["COBie.Component.Space"] + if space_name not in self.spaces: + space_name = None + + self.components[name] = { + "Name": name, + "AuthorOrganizationName": element.OwnerHistory.OwningUser.TheOrganization.Name, + "AuthorDate": ifcopenshell.util.date.ifc2datetime(element.OwnerHistory.CreationDate).isoformat(), + "TypeName": element_type.Name, + "SpaceName": space_name, + "InstallationDate": None, + "WarrantyStartDate": None, + "ModelSoftware": element.OwnerHistory.OwningApplication.ApplicationFullName, + "ModelObject": element.is_a(), + "ModelID": element.GlobalId, + "InstalledModelNumber": None, + "SerialNumber": None, + "BarCode": None, + "TagNumber": None, + "OwnerAssetID": None, + "SystemName": system, + "FluidHotFeedName": None, + "FluidColdFeedName": None, + "ElectricPanelName": None, + "ElectricCircuitName": None, + "ControlledByName": None, + "InterlockedWithName": None, + "PartOfAssemblyName": None, + } + + def get_documents(self): + for rel in self.files["arch"].by_type("IfcRelAssociatesDocument"): + element = rel.RelatingDocument + for related_object in rel.RelatedObjects: + name = element.Name + worksheet_row = related_object.Name + if self.files["arch"].schema == "IFC2X3": + submittal_id = element.ItemReference + referenced_document = element.ReferenceToDocument[0] + author_date = None + if referenced_document.CreationTime: + author_date = ifcopenshell.util.date.ifc2datetime(referenced_document.CreationTime).isoformat() + else: + submittal_id = element.Identification + referenced_document = element.ReferencedDocument + author_date = referenced_document.CreationTime + + worksheet_name = None + if related_object.is_a("IfcSpace"): + worksheet_name = "Space" + elif related_object.is_a("IfcTypeObject"): + worksheet_name = "Type" + + self.documents[element.Name + worksheet_name + worksheet_row] = { + "Name": name, + "AuthorOrganizationName": referenced_document.DocumentOwner.Name, + "AuthorDate": author_date, + "Category": referenced_document.Purpose, + "WorksheetName": worksheet_name, + "WorksheetRow": worksheet_row, + "Revision": referenced_document.Revision, + "Location": referenced_document.Name, + "Description": referenced_document.Description, + "SpecificationSection": None, + "SubmittalID": submittal_id, + "SourceURL": None, + } diff --git a/src/ifcfm/ifcfm/writer.py b/src/ifcfm/ifcfm/writer.py new file mode 100644 index 0000000000..143eac353e --- /dev/null +++ b/src/ifcfm/ifcfm/writer.py @@ -0,0 +1,581 @@ +import csv + +try: + from xlsxwriter import Workbook +except: + pass # No XLSX support + +try: + from odf.opendocument import OpenDocumentSpreadsheet + from odf.style import Style, TableCellProperties + from odf.table import Table, TableRow, TableCell + from odf.text import P +except: + pass # No ODF support + + +# https://stackoverflow.com/questions/1143671/how-to-sort-objects-by-multiple-keys-in-python + +from operator import itemgetter as i +from functools import cmp_to_key + + +def cmp(x, y): + """ + Replacement for built-in function cmp that was removed in Python 3 + + Compare the two objects x and y and return an integer according to + the outcome. The return value is negative if x < y, zero if x == y + and strictly positive if x > y. + + https://portingguide.readthedocs.io/en/latest/comparisons.html#the-cmp-function + """ + + try: + return (x > y) - (x < y) + except: + return 0 + + +def multikeysort(items, columns): + comparers = [((i(col[1:].strip()), -1) if col.startswith("-") else (i(col.strip()), 1)) for col in columns] + + def comparer(left, right): + comparer_iter = (cmp(fn(left), fn(right)) * mult for fn, mult in comparers) + return next((result for result in comparer_iter if result), 0) + + return sorted(items, key=cmp_to_key(comparer)) + + +class Writer: + def __init__(self, parser, filename=None): + self.filename = filename + self.parser = parser + self.sheets = [] + self.sheet_data = {} + self.colours = { + "r": "fdff8e", # Required + "i": "fdcd94", # Internal reference + "e": "cd95ff", # External reference + "o": "cdffc8", # Optional + "s": "c0c0c0", # Secondary information + "p": "9ccaff", # Project specific + "n": "000000", # Not used + } + self.colours = { + "r": "dc8774", # Required + "i": "eda786", # Internal reference + "e": "96c7d0", # External reference + "o": "ddb873", # Optional or edd889 + "s": "dddddd", # Secondary information + "p": "b8dd73", # Project specific + "n": "000000", # Not used + } + + def write(self): + self.sheets = [ + "Contact", + "Facility", + "Floor", + "Space", + "Zone", + "Type", + "Component", + "System", + # "Assembly", + # "Connection", + # "Spare", + # "Resource", + # "Job", + # "Impact", + "Document", + # "Attribute", + # "Coordinate", + # "Issue", + ] + self.write_data( + "Contact", + self.parser.contacts, + [ + "Name", + "Category", + "Email", + "Phone", + "Department", + "Street", + "PostalBox", + "Town", + "StateRegion", + "PostalCode", + "Country", + "CompanyURL", + ], + "rirrrrrrrrrr", + ["Name"], + ) + self.write_data( + "Facility", + self.parser.facilities, + [ + "Name", + "AuthorOrganizationName", + "AuthorDate", + "Category", + "ProjectName", + "SiteName", + "LinearUnits", + "AreaUnits", + "AreaMeasurement", + "Phase", + "ModelSoftware", + "ModelProjectID", + "ModelSiteID", + "ModelBuildingID", + ], + "ririrrrrrreeee", + ["Name"], + ) + self.write_data( + "Floor", + self.parser.floors, + [ + "Name", + "AuthorOrganizationName", + "AuthorDate", + "Category", + "ModelSoftware", + "ModelObject", + "ModelID", + "Elevation", + ], + "ririeeer", + ["Elevation"], + ) + self.write_data( + "Space", + self.parser.spaces, + [ + "Name", + "AuthorOrganizationName", + "AuthorDate", + "Category", + "LevelName", + "Description", + "ModelSoftware", + "ModelID", + "BuildingRoomNumber", + "UsableHeight", + "AreaGross", + "AreaNet", + ], + "ririireerrrr", + ["LevelName", "Name"], + ) + self.write_data( + "Zone", + self.parser.zones, + [ + "Name", + "AuthorOrganizationName", + "AuthorDate", + "Category", + "SpaceName", + "ModelSoftware", + "ModelID", + "ParentZoneName", + ], + "ririieei", + ["Name", "SpaceName"], + ) + self.write_data( + "Type", + self.parser.types, + [ + "Name", + "AuthorOrganizationName", + "AuthorDate", + "Category", + "ProcurementMethod", + "Description", + "ManufacturerOrganizationName", + "SupplierOrganizationName", + "ModelNumber", + "WarrantyOrganizationName", + "WarrantyDuration", + "ModelSoftware", + "ModelObject", + "ModelID", + "SpecificationSection", + "SubmittalID", + "ProductURL", + ], + "ririiriirireeerrr", + ["ModelObject", "Name"], + ) + self.write_data( + "Component", + self.parser.components, + [ + "Name", + "AuthorOrganizationName", + "AuthorDate", + "TypeName", + "SpaceName", + "InstallationDate", + "WarrantyStartDate", + "ModelSoftware", + "ModelObject", + "ModelID", + "InstalledModelNumber", + "SerialNumber", + "BarCode", + "TagNumber", + "OwnerAssetID", + "SystemName", + "FluidHotFeedName", + "FluidColdFeedName", + "ElectricPanelName", + "ElectricCircuitName", + "ControlledByName", + "InterlockedWithName", + "PartOfAssemblyName", + ], + "ririirreeerrrrriiiiiiii", + ["ModelObject", "Name"], + ) + self.write_data( + "System", + self.parser.systems, + [ + "Name", + "AuthorOrganizationName", + "AuthorDate", + "Category", + "ModelSoftware", + "ModelID", + "ParentSystemName", + ], + "ririeei", + ["Name"], + ) + # self.write_data( + # "Assembly", + # self.parser.assemblies, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "SheetName", + # "ParentName", + # "ChildNames", + # "AssemblyType", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # "Description", + # ], + # "rirrrrreeeo", + # self.parser.custom_data["assemblies"], + # ) + # self.write_data( + # "Connection", + # self.parser.connections, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "ConnectionType", + # "SheetName", + # "RowName1", + # "RowName2", + # "RealizingElement", + # "PortName1", + # "PortName2", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # "Description", + # ], + # "ririiiiiiieeeo", + # self.parser.custom_data["connections"], + # ) + # self.write_data( + # "Spare", + # self.parser.spares, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "Category", + # "TypeName", + # "Suppliers", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # "Description", + # "SetNumber", + # "PartNumber", + # ], + # "ririiieeeooo", + # self.parser.custom_data["spares"], + # ) + # self.write_data( + # "Resource", + # self.parser.resources, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "Category", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # "Description", + # ], + # "ririeeeo", + # self.parser.custom_data["resources"], + # ) + # self.write_data( + # "Job", + # self.parser.jobs, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "Category", + # "Status", + # "TypeName", + # "Description", + # "Duration", + # "DurationUnit", + # "Start", + # "TaskStartUnit", + # "Frequency", + # "FrequencyUnit", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # "TaskNumber", + # "Priors", + # "ResourceNames", + # ], + # "ririiirriririeeeoii", + # self.parser.custom_data["jobs"], + # ) + # self.write_data( + # "Impact", + # self.parser.impacts, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "ImpactType", + # "ImpactStage", + # "SheetName", + # "RowName", + # "Value", + # "Unit", + # "LeadInTime", + # "Duration", + # "LeadOutTime", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # "Description", + # ], + # "ririiiirioooeeeo", + # self.parser.custom_data["impacts"], + # ) + self.write_data( + "Document", + self.parser.documents, + [ + "Name", + "AuthorOrganizationName", + "AuthorDate", + "Category", + "WorksheetName", + "WorksheetRow", + "Revision", + "Location", + "Description", + "SpecificationSection", + "SubmittalID", + "SourceURL", + ], + "ririiirrrrer", + ["Name"], + ) + # self.write_data( + # "Attribute", + # self.parser.attributes, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "Category", + # "SheetName", + # "RowName", + # "Value", + # "Unit", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # "Description", + # "AllowedValues", + # ], + # "ririiirreeeoo", + # ) + # self.write_data( + # "Coordinate", + # self.parser.coordinates, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "Category", + # "SheetName", + # "RowName", + # "CoordinateXAxis", + # "CoordinateYAxis", + # "CoordinateZAxis", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # "ClockwiseRotation", + # "ElevationalRotation", + # "YawRotation", + # ], + # "ririiooooeeeooo", + # ) + # self.write_data( + # "Issue", + # self.parser.issues, + # "Name", + # [ + # "Name", + # "CreatedBy", + # "CreatedOn", + # "Type", + # "Risk", + # "Chance", + # "Impact", + # "SheetName1", + # "RowName1", + # "SheetName2", + # "RowName2", + # "Description", + # "Owner", + # "Mitigation", + # "ExtSystem", + # "ExtObject", + # "ExtIdentifier", + # ], + # "ririooooooooooeee", + # ) + + def write_data(self, sheet, data, fieldnames, colours, sort_fields, custom_data={}): + self.sheet_data[sheet] = {"headers": fieldnames + list(custom_data.keys()), "colours": colours, "rows": []} + for row in multikeysort(list(data.values()), sort_fields): + values = [] + for fieldname in fieldnames: + values.append(row[fieldname]) + for fieldname in custom_data.keys(): + values.append(row[fieldname]) + self.sheet_data[sheet]["rows"].append(values) + + +class CsvWriter(Writer): + def write(self): + super().write() + for sheet, data in self.sheet_data.items(): + with open(os.path.join(self.filename, "{}.csv".format(sheet)), "w", newline="", encoding="utf-8") as file: + writer = csv.writer(file) + writer.writerow(data["headers"]) + for row in data["rows"]: + writer.writerow(row) + + +class XlsWriter(Writer): + def write(self): + super().write() + self.workbook = Workbook(self.filename + ".xlsx") + + self.cell_formats = {} + for key, value in self.colours.items(): + self.cell_formats[key] = self.workbook.add_format() + self.cell_formats[key].set_bg_color(value) + + for sheet in self.sheets: + self.write_worksheet(sheet) + self.workbook.close() + + def write_worksheet(self, name): + worksheet = self.workbook.add_worksheet(name) + r = 0 + c = 0 + for header in self.sheet_data[name]["headers"]: + cell = worksheet.write(r, c, header, self.cell_formats["s"]) + c += 1 + c = 0 + r += 1 + for row in self.sheet_data[name]["rows"]: + c = 0 + for col in row: + if c >= len(self.sheet_data[name]["colours"]): + cell_format = "p" + else: + cell_format = self.sheet_data[name]["colours"][c] + cell = worksheet.write(r, c, col, self.cell_formats[cell_format]) + c += 1 + r += 1 + + +class OdsWriter(Writer): + def write(self): + super().write() + self.doc = OpenDocumentSpreadsheet() + + self.cell_formats = {} + for key, value in self.colours.items(): + style = Style(name=key, family="table-cell") + style.addElement(TableCellProperties(backgroundcolor="#" + value)) + self.doc.automaticstyles.addElement(style) + self.cell_formats[key] = style + + for sheet in self.sheets: + self.write_table(sheet) + self.doc.save(self.filename, True) + + def write_table(self, name): + table = Table(name=name) + tr = TableRow() + for header in self.sheet_data[name]["headers"]: + tc = TableCell(valuetype="string", stylename="s") + tc.addElement(P(text=header)) + tr.addElement(tc) + table.addElement(tr) + for row in self.sheet_data[name]["rows"]: + tr = TableRow() + c = 0 + for col in row: + if c >= len(self.sheet_data[name]["colours"]): + cell_format = "p" + else: + cell_format = self.sheet_data[name]["colours"][c] + tc = TableCell(valuetype="string", stylename=cell_format) + if col is None: + col = "NULL" + tc.addElement(P(text=col)) + tr.addElement(tc) + c += 1 + table.addElement(tr) + self.doc.spreadsheet.addElement(table) From 2420ad2fa7c72b7f1a02abcdccf3710ab2db0b4d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jul 2021 21:10:36 +1000 Subject: [PATCH 050/168] New feature to add wall openings where your cursor is --- .../blenderbim/bim/module/model/__init__.py | 1 + .../blenderbim/bim/module/model/wall.py | 35 +++++++++++++++++++ .../blenderbim/bim/module/model/workspace.py | 11 ++++++ 3 files changed, 47 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index d23386d63f..802d4b7a20 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -9,6 +9,7 @@ classes = ( wall.AlignWall, wall.FlipWall, wall.SplitWall, + wall.AddWallOpening, prop.BIMModelProperties, ui.BIM_PT_authoring, ui.BIM_PT_authoring_architectural, diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 25ec66c86b..92ad70346b 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -36,6 +36,41 @@ def mode_callback(obj, data): IfcStore.edited_objs.add(obj) +class AddWallOpening(bpy.types.Operator): + bl_idname = "bim.add_wall_opening" + bl_label = "Add Wall Opening" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + selected_objs = context.selected_objects + if len(selected_objs) == 0 or not context.active_object: + return {"FINISHED"} + wall_obj = context.active_object + if not wall_obj.BIMObjectProperties.ifc_definition_id: + return {"FINISHED"} + wall = IfcStore.get_file().by_id(wall_obj.BIMObjectProperties.ifc_definition_id) + if not wall.is_a("IfcWall"): + return {"FINISHED"} + local_location = wall_obj.matrix_world.inverted() @ context.scene.cursor.location + raycast = wall_obj.closest_point_on_mesh(local_location, distance=0.01) + if not raycast[0]: + return {"FINISHED"} + bpy.ops.mesh.primitive_cube_add(size=wall_obj.dimensions[1] * 2) + opening = bpy.context.selected_objects[0] + + # Place the opening in the middle of the wall + global_location = wall_obj.matrix_world @ raycast[1] + normal = raycast[2] + normal.negate() + global_normal = wall_obj.matrix_world.to_quaternion() @ normal + opening.location = global_location + (global_normal * (wall_obj.dimensions[1] / 2)) + + opening.rotation_euler = wall_obj.rotation_euler + opening.name = "Opening" + bpy.ops.bim.add_opening(opening=opening.name, obj=wall_obj.name) + return {"FINISHED"} + + class JoinWall(bpy.types.Operator): bl_idname = "bim.join_wall" bl_label = "Join Wall" diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index f14eaf5c35..edc51476ec 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -26,6 +26,7 @@ class BimTool(WorkSpaceTool): ("bim.hotkey", {"type": "X", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "X")]}), ("bim.hotkey", {"type": "C", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "C")]}), ("bim.hotkey", {"type": "V", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "V")]}), + ("bim.hotkey", {"type": "O", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "O")]}), ) def draw_settings(context, layout, tool): @@ -45,6 +46,10 @@ class BimTool(WorkSpaceTool): row.label(text="Mitre", icon="EVENT_Y") row.label(text="Flip", icon="EVENT_F") row.label(text="Split", icon="EVENT_S") + row.label(text="Opening", icon="EVENT_O") + + if props.ifc_class == "IfcSlabType": + row.label(text="Opening", icon="EVENT_O") row.label(text="", icon="EVENT_X") row.label(text="", icon="EVENT_C") @@ -87,3 +92,9 @@ class Hotkey(bpy.types.Operator): bpy.ops.bim.align_wall(align_type="EXTERIOR") else: bpy.ops.bim.align_product(align_type="NEGATIVE") + + def hotkey_O(self): + if self.props.ifc_class == "IfcWallType": + bpy.ops.bim.add_wall_opening() + elif self.props.ifc_class == "IfcSlabType": + pass From 6660714308bb198c81059262c8574ce5d152ae8d Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 23 Jul 2021 21:18:43 +1000 Subject: [PATCH 051/168] New feature to add slab openings --- .../blenderbim/bim/module/model/__init__.py | 1 + .../blenderbim/bim/module/model/slab.py | 38 +++++++++++++++++++ .../blenderbim/bim/module/model/wall.py | 3 ++ .../blenderbim/bim/module/model/workspace.py | 2 +- 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 802d4b7a20..944583776f 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -10,6 +10,7 @@ classes = ( wall.FlipWall, wall.SplitWall, wall.AddWallOpening, + slab.AddSlabOpening, prop.BIMModelProperties, ui.BIM_PT_authoring, ui.BIM_PT_authoring_architectural, diff --git a/src/blenderbim/blenderbim/bim/module/model/slab.py b/src/blenderbim/blenderbim/bim/module/model/slab.py index 26b47def02..9aefba63c7 100644 --- a/src/blenderbim/blenderbim/bim/module/model/slab.py +++ b/src/blenderbim/blenderbim/bim/module/model/slab.py @@ -195,6 +195,44 @@ def calculate_quantities(usecase_path, ifc_file, settings): PsetData.load(ifc_file, obj.BIMObjectProperties.ifc_definition_id) +class AddSlabOpening(bpy.types.Operator): + bl_idname = "bim.add_slab_opening" + bl_label = "Add Slab Opening" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + selected_objs = context.selected_objects + if len(selected_objs) == 0 or not context.active_object: + return {"FINISHED"} + slab_obj = context.active_object + if not slab_obj.BIMObjectProperties.ifc_definition_id: + return {"FINISHED"} + slab = IfcStore.get_file().by_id(slab_obj.BIMObjectProperties.ifc_definition_id) + if not slab.is_a("IfcSlab"): + return {"FINISHED"} + local_location = slab_obj.matrix_world.inverted() @ context.scene.cursor.location + raycast = slab_obj.closest_point_on_mesh(local_location, distance=0.01) + if not raycast[0]: + return {"FINISHED"} + bpy.ops.mesh.primitive_cube_add(size=slab_obj.dimensions[2] * 2) + opening = bpy.context.selected_objects[0] + + # Place the opening in the middle of the slab + global_location = slab_obj.matrix_world @ raycast[1] + normal = raycast[2] + normal.negate() + global_normal = slab_obj.matrix_world.to_quaternion() @ normal + opening.location = global_location + (global_normal * (slab_obj.dimensions[2] / 2)) + + opening.rotation_euler = slab_obj.rotation_euler + opening.name = "Opening" + bpy.ops.bim.add_opening(opening=opening.name, obj=slab_obj.name) + return {"FINISHED"} + + class DumbSlabGenerator: def __init__(self, relating_type): self.relating_type = relating_type diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 92ad70346b..761ecb7959 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -42,6 +42,9 @@ class AddWallOpening(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): selected_objs = context.selected_objects if len(selected_objs) == 0 or not context.active_object: return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index edc51476ec..164af0ae99 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -97,4 +97,4 @@ class Hotkey(bpy.types.Operator): if self.props.ifc_class == "IfcWallType": bpy.ops.bim.add_wall_opening() elif self.props.ifc_class == "IfcSlabType": - pass + bpy.ops.bim.add_slab_opening() From fe3ffb77714a5c9d1ce0c0d071d3a9505a4c9335 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 24 Jul 2021 21:35:27 +1000 Subject: [PATCH 052/168] Openings are now placed in their own collection in case they accidentally get placed in the spatial tree --- .../blenderbim/bim/module/root/operator.py | 14 ++++++++++++++ src/ifcopenshell-python/ifcopenshell/validate.py | 8 ++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index c7f9e09ff8..5ff17caf5a 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -129,6 +129,8 @@ class AssignClass(bpy.types.Operator): if product.is_a("IfcElementType"): self.place_in_types_collection(obj) + elif product.is_a("IfcOpeningElement"): + self.place_in_openings_collection(obj) elif ( product.is_a("IfcSpatialElement") or product.is_a("IfcSpatialStructureElement") @@ -152,6 +154,18 @@ class AssignClass(bpy.types.Operator): break break + def place_in_openings_collection(self, obj): + for project in [c for c in bpy.context.view_layer.layer_collection.children if "IfcProject" in c.name]: + if not [c for c in project.children if "IfcOpeningElements" in c.name]: + opening_elements = bpy.data.collections.new("IfcOpeningElements") + project.collection.children.link(opening_elements) + for collection in [c for c in project.children if "IfcOpeningElements" in c.name]: + for user_collection in obj.users_collection: + user_collection.objects.unlink(obj) + collection.collection.objects.link(obj) + break + break + def place_in_spatial_collection(self, obj): for collection in obj.users_collection: if collection.name == obj.name: diff --git a/src/ifcopenshell-python/ifcopenshell/validate.py b/src/ifcopenshell-python/ifcopenshell/validate.py index 22bd05ee93..1506138954 100644 --- a/src/ifcopenshell-python/ifcopenshell/validate.py +++ b/src/ifcopenshell-python/ifcopenshell/validate.py @@ -34,7 +34,7 @@ class json_logger: self.instance = instance def log(self, level, message, *args, **kwargs): - self.statements.append(log_entry_type(level, message % args, kwargs.get('instance'))._asdict()) + self.statements.append(log_entry_type(level, message % args, kwargs.get("instance"))._asdict()) def __getattr__(self, level): return functools.partial(self.log, level, instance=self.instance) @@ -75,7 +75,7 @@ def assert_valid(attr, val, schema): while isinstance(attr_type, type_wrappers): attr_type = attr_type.declared_type() - + invalid = False if isinstance(attr_type, simple_type): @@ -120,10 +120,10 @@ def validate(f, logger): numeric identifiers or invalidate entity names are not caught by this function. Some of these might have been logged and can be retrieved by calling `ifcopenshell.get_log()`. A verification of the type, entity and global WHERE rules is also not implemented. - + For every entity instance in the model, it is checked that the entity is not abstract that every attribute value is of the correct type and that the inverse attributes are of the correct cardinality. - + Express simple types are checked for their valuation type. For select types it is asserted that the value conforms to one of the leaves. For enumerations it is checked that the value is indeed on of the items. For aggregations it is checked that the elements and the cardinality conforms. Type declarations (IfcInteger which is an integer) are From 8c1eff5c26cafb68c3a8803c217edd32e28e1795 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 24 Jul 2021 21:50:14 +1000 Subject: [PATCH 053/168] New workspace hotkey to toggle visibility of openings when authoring --- .../blenderbim/bim/module/model/workspace.py | 26 ++++++++++++------- .../blenderbim/bim/module/void/__init__.py | 1 + .../blenderbim/bim/module/void/operator.py | 12 +++++++++ 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index 164af0ae99..693ed8c8fa 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -18,15 +18,16 @@ class BimTool(WorkSpaceTool): # ("bim.wall_tool_op", {"type": 'MOUSEMOVE', "value": 'ANY'}, {"properties": []}), # ("mesh.add_wall", {"type": 'LEFTMOUSE', "value": 'PRESS'}, {"properties": []}), ("bim.add_type_instance", {"type": "A", "value": "PRESS", "shift": True}, {"properties": []}), - ("bim.hotkey", {"type": "E", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "E")]}), + ("bim.hotkey", {"type": "E", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_E")]}), ("bim.join_wall", {"type": "T", "value": "PRESS", "shift": True}, {"properties": [("join_type", "L")]}), ("bim.join_wall", {"type": "Y", "value": "PRESS", "shift": True}, {"properties": [("join_type", "V")]}), ("bim.flip_wall", {"type": "F", "value": "PRESS", "shift": True}, {"properties": []}), ("bim.split_wall", {"type": "S", "value": "PRESS", "shift": True}, {"properties": []}), - ("bim.hotkey", {"type": "X", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "X")]}), - ("bim.hotkey", {"type": "C", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "C")]}), - ("bim.hotkey", {"type": "V", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "V")]}), - ("bim.hotkey", {"type": "O", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "O")]}), + ("bim.hotkey", {"type": "X", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_X")]}), + ("bim.hotkey", {"type": "C", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_C")]}), + ("bim.hotkey", {"type": "V", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_V")]}), + ("bim.hotkey", {"type": "O", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_O")]}), + ("bim.hotkey", {"type": "O", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_O")]}), ) def draw_settings(context, layout, tool): @@ -56,6 +57,8 @@ class BimTool(WorkSpaceTool): row.label(text="", icon="EVENT_V") row.label(text="Align") + row.label(text="", icon="EVENT_ALT") + row.label(text="Opening", icon="EVENT_O") class Hotkey(bpy.types.Operator): bl_idname = "bim.hotkey" @@ -71,30 +74,33 @@ class Hotkey(bpy.types.Operator): getattr(self, f"hotkey_{self.hotkey}")() return {"FINISHED"} - def hotkey_C(self): + def hotkey_S_C(self): if self.props.ifc_class == "IfcWallType": bpy.ops.bim.align_wall(align_type="CENTERLINE") else: bpy.ops.bim.align_product(align_type="CENTERLINE") - def hotkey_E(self): + def hotkey_S_E(self): if self.props.ifc_class == "IfcWallType": bpy.ops.bim.join_wall(join_type="T") - def hotkey_V(self): + def hotkey_S_V(self): if self.props.ifc_class == "IfcWallType": bpy.ops.bim.align_wall(align_type="INTERIOR") else: bpy.ops.bim.align_product(align_type="POSITIVE") - def hotkey_X(self): + def hotkey_S_X(self): if self.props.ifc_class == "IfcWallType": bpy.ops.bim.align_wall(align_type="EXTERIOR") else: bpy.ops.bim.align_product(align_type="NEGATIVE") - def hotkey_O(self): + def hotkey_S_O(self): if self.props.ifc_class == "IfcWallType": bpy.ops.bim.add_wall_opening() elif self.props.ifc_class == "IfcSlabType": bpy.ops.bim.add_slab_opening() + + def hotkey_A_O(self): + bpy.ops.bim.toggle_opening_visibility() diff --git a/src/blenderbim/blenderbim/bim/module/void/__init__.py b/src/blenderbim/blenderbim/bim/module/void/__init__.py index 3727f40508..a65a04ee84 100644 --- a/src/blenderbim/blenderbim/bim/module/void/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/void/__init__.py @@ -6,6 +6,7 @@ classes = ( operator.RemoveOpening, operator.AddFilling, operator.RemoveFilling, + operator.ToggleOpeningVisibility, prop.VoidProperties, ui.BIM_PT_voids, ) diff --git a/src/blenderbim/blenderbim/bim/module/void/operator.py b/src/blenderbim/blenderbim/bim/module/void/operator.py index 4e87b7aaeb..537b5faf19 100644 --- a/src/blenderbim/blenderbim/bim/module/void/operator.py +++ b/src/blenderbim/blenderbim/bim/module/void/operator.py @@ -130,3 +130,15 @@ class RemoveFilling(bpy.types.Operator): ) Data.load(IfcStore.get_file(), obj.BIMObjectProperties.ifc_definition_id) return {"FINISHED"} + + +class ToggleOpeningVisibility(bpy.types.Operator): + bl_idname = "bim.toggle_opening_visibility" + bl_label = "Toggle Opening Visibility" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + for project in [c for c in bpy.context.view_layer.layer_collection.children if "IfcProject" in c.name]: + for collection in [c for c in project.children if "IfcOpeningElements" in c.name]: + collection.hide_viewport = not collection.hide_viewport + return {"FINISHED"} From 08d6c0a2d8c707cbd12ecf25c18bc74554aa596b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 24 Jul 2021 22:08:50 +1000 Subject: [PATCH 054/168] Openings are now auto dissolved when authoring for easier editing. --- .../blenderbim/bim/module/model/handler.py | 4 ++- .../blenderbim/bim/module/model/opening.py | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/handler.py b/src/blenderbim/blenderbim/bim/module/model/handler.py index e24fbac6e3..58bfa687aa 100644 --- a/src/blenderbim/blenderbim/bim/module/model/handler.py +++ b/src/blenderbim/blenderbim/bim/module/model/handler.py @@ -1,7 +1,7 @@ import bpy import ifcopenshell import ifcopenshell.api -from blenderbim.bim.module.model import product, wall, slab, profile +from blenderbim.bim.module.model import product, wall, slab, profile, opening from blenderbim.bim.ifc import IfcStore from bpy.app.handlers import persistent @@ -17,6 +17,8 @@ def load_post(*args): product.regenerate_profile_usage, ) + IfcStore.add_element_listener(opening.element_listener) + IfcStore.add_element_listener(wall.element_listener) ifcopenshell.api.add_pre_listener( "geometry.add_representation", "BlenderBIM.DumbWall.EnsureSolid", wall.ensure_solid diff --git a/src/blenderbim/blenderbim/bim/module/model/opening.py b/src/blenderbim/blenderbim/bim/module/model/opening.py index e2dcdd33c2..795035aa41 100644 --- a/src/blenderbim/blenderbim/bim/module/model/opening.py +++ b/src/blenderbim/blenderbim/bim/module/model/opening.py @@ -1,10 +1,37 @@ import bpy import bmesh +import blenderbim.bim.handler +from blenderbim.bim.ifc import IfcStore +from math import pi from bpy.types import Operator from bpy.props import FloatProperty from bpy_extras.object_utils import AddObjectHelper, object_data_add +def element_listener(element, obj): + blenderbim.bim.handler.subscribe_to(obj, "mode", mode_callback) + + +def mode_callback(obj, data): + for obj in bpy.context.selected_objects + [bpy.context.active_object]: + if ( + obj.mode != "EDIT" + or not obj.data + or not isinstance(obj.data, (bpy.types.Mesh, bpy.types.Curve, bpy.types.TextCurve)) + or not obj.BIMObjectProperties.ifc_definition_id + or not bpy.context.scene.BIMProjectProperties.is_authoring + ): + return + product = IfcStore.get_file().by_id(obj.BIMObjectProperties.ifc_definition_id) + if not product.is_a("IfcOpeningElement"): + return + IfcStore.edited_objs.add(obj) + bm = bmesh.from_edit_mesh(obj.data) + bmesh.ops.dissolve_limit(bm, angle_limit=pi / 180 * 1, verts=bm.verts, edges=bm.edges) + bmesh.update_edit_mesh(obj.data) + bm.free() + + def add_object(self, context): bm = bmesh.new() bmesh.ops.create_cube(bm, size=self.size) From 6e3c72707db894cd997e2906880bb96c32b02ebe Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 24 Jul 2021 22:25:01 +0200 Subject: [PATCH 055/168] submodule --- src/ifcopenshell-python/ifcopenshell/mvd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/mvd b/src/ifcopenshell-python/ifcopenshell/mvd index 2f0ce53d56..667894b629 160000 --- a/src/ifcopenshell-python/ifcopenshell/mvd +++ b/src/ifcopenshell-python/ifcopenshell/mvd @@ -1 +1 @@ -Subproject commit 2f0ce53d56b7d78ca7ef201305643f1aec3d4696 +Subproject commit 667894b6295ea5ccc489d97ff2064bebcd67bda8 From 43f8d8547d6395e6bc2f57c08016d16ab453b6ce Mon Sep 17 00:00:00 2001 From: Alexander Nitsch Date: Sun, 25 Jul 2021 01:57:59 +0200 Subject: [PATCH 056/168] Bimtester: Fixed attributes_psets step files (#1580) Co-authored-by: Nitsch Alexander --- .../bimtester/features/steps/all.py | 5 +- .../features/steps/attributes_psets/de.py | 8 ++ .../features/steps/attributes_psets/en.py | 80 +++++++++++++++++++ .../examples/steps/attributes_psets.py | 53 ------------ .../examples/steps/attributes_psets_de.py | 18 ----- .../examples/steps/attributes_psets_fr.py | 21 ----- .../steps/attributes_psets_methods.py | 36 --------- 7 files changed, 92 insertions(+), 129 deletions(-) create mode 100644 src/ifcbimtester/bimtester/features/steps/attributes_psets/de.py create mode 100644 src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py delete mode 100644 src/ifcbimtester/examples/steps/attributes_psets.py delete mode 100644 src/ifcbimtester/examples/steps/attributes_psets_de.py delete mode 100644 src/ifcbimtester/examples/steps/attributes_psets_fr.py delete mode 100644 src/ifcbimtester/examples/steps/attributes_psets_methods.py diff --git a/src/ifcbimtester/bimtester/features/steps/all.py b/src/ifcbimtester/bimtester/features/steps/all.py index 7270814868..6fcb45d576 100644 --- a/src/ifcbimtester/bimtester/features/steps/all.py +++ b/src/ifcbimtester/bimtester/features/steps/all.py @@ -20,4 +20,7 @@ use_step_matcher("parse") from bimtester.features.steps.project_setup import de, en, fr, it, nl use_step_matcher("parse") -from bimtester.features.steps.aggregation import en \ No newline at end of file +from bimtester.features.steps.aggregation import en + +use_step_matcher("parse") +from bimtester.features.steps.attributes_psets import en, de diff --git a/src/ifcbimtester/bimtester/features/steps/attributes_psets/de.py b/src/ifcbimtester/bimtester/features/steps/attributes_psets/de.py new file mode 100644 index 0000000000..b9080143e8 --- /dev/null +++ b/src/ifcbimtester/bimtester/features/steps/attributes_psets/de.py @@ -0,0 +1,8 @@ +from behave import step, use_step_matcher + +use_step_matcher("parse") + + +@step("An alle {ifc_class} Bauteile ist im PSet {pset} das Attribut {aproperty} angehängt") +def step_impl(context, ifc_class, aproperty, pset): + context.execute_steps(f"all {ifc_class} elements have an {aproperty} property in the {pset} pset") diff --git a/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py b/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py new file mode 100644 index 0000000000..c8cdf7aa02 --- /dev/null +++ b/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py @@ -0,0 +1,80 @@ +from behave import step, use_step_matcher + +from bimtester.ifc import IfcStore +from bimtester.util import assert_elements +from bimtester.lang import _ + + +@step("all {ifc_class} elements have an {aproperty} property in the {pset} pset") +def step_impl(context, ifc_class, aproperty, pset): + eleclass_has_property_in_pset( + context, + ifc_class, + aproperty, + pset + ) + + +# ------------------------------------------------------------------------ +# STEPS with Regular Expression Matcher ("re") +# ------------------------------------------------------------------------ +use_step_matcher("re") + + +@step(r"all (?P.*) elements have an? (?P.*\..*) property") +def step_impl(context, ifc_class, property_path): + pset_name, property_name = property_path.split(".") + elements = IfcStore.file.by_type(ifc_class) + for element in elements: + if not IfcStore.file.get_property(element, pset_name, property_name): + assert False + + +@step( + r'all (?P.*) elements have an? (?P.*\..*) property value matching the pattern "(?P.*)"' +) +def step_impl(context, ifc_class, property_path, pattern): + import re + + pset_name, property_name = property_path.split(".") + elements = IfcStore.file.by_type(ifc_class) + for element in elements: + prop = IfcStore.file.get_property(element, pset_name, property_name) + if not prop: + assert False + # For now, we only check single values + if prop.is_a("IfcPropertySingleValue"): + if not (prop.NominalValue and re.search(pattern, prop.NominalValue.wrappedValue)): + assert False + + +def eleclass_has_property_in_pset( + context, ifc_class, aproperty, pset +): + context.falseelems = [] + context.falseguids = [] + context.falseprops = {} + from ifcopenshell.util.element import get_psets + + elements = IfcStore.file.by_type(ifc_class) + for elem in elements: + psets = get_psets(elem) + if not (pset in psets and aproperty in psets[pset]): + context.falseelems.append(str(elem)) + context.falseguids.append(elem.GlobalId) + context.falseprops[elem.id()] = str(psets) + + context.elemcount = len(elements) + context.falsecount = len(context.falseelems) + assert_elements( + ifc_class, + context.elemcount, + context.falsecount, + context.falseelems, + # TODO: Translate these messages into other languages + message_all_falseelems=_("All {elemcount} {ifc_class} elements are missing the property {parameter} in the pset."), + message_some_falseelems=_("The following {falsecount} of {elemcount} {ifc_class} elements are missing the property {parameter} in the pset: {falseelems}"), + message_no_elems=_("There are no {ifc_class} elements in the IFC file."), + parameter=aproperty + ) + # the pset name is missing in the failing message, but it is in the step test name diff --git a/src/ifcbimtester/examples/steps/attributes_psets.py b/src/ifcbimtester/examples/steps/attributes_psets.py deleted file mode 100644 index 7eaa4cc596..0000000000 --- a/src/ifcbimtester/examples/steps/attributes_psets.py +++ /dev/null @@ -1,53 +0,0 @@ -from behave import step - -import attributes_psets_methods as apm -from utils import assert_elements -from utils import IfcFile -from utils import switch_locale - - -the_lang = "en" - - -@step("all {ifc_class} elements have an {aproperty} property in the {pset} pset") -def step_impl(context, ifc_class, aproperty, pset): - switch_locale(context.localedir, the_lang) - apm.eleclass_has_property_in_pset( - context, - ifc_class, - aproperty, - pset - ) - - -# ------------------------------------------------------------------------ -# STEPS with Regular Expression Matcher ("re") -# ------------------------------------------------------------------------ -use_step_matcher("re") - - -@step("all (?P.*) elements have an? (?P.*\..*) property") -def step_impl(context, ifc_class, property_path): - pset_name, property_name = property_path.split(".") - elements = IfcFile.get().by_type(ifc_class) - for element in elements: - if not IfcFile.get_property(element, pset_name, property_name): - assert False - - -@step( - 'all (?P.*) elements have an? (?P.*\..*) property value matching the pattern "(?P.*)"' -) -def step_impl(context, ifc_class, property_path, pattern): - import re - - pset_name, property_name = property_path.split(".") - elements = IfcFile.get().by_type(ifc_class) - for element in elements: - prop = IfcFile.get_property(element, pset_name, property_name) - if not prop: - assert False - # For now, we only check single values - if prop.is_a("IfcPropertySingleValue"): - if not (prop.NominalValue and re.search(pattern, prop.NominalValue.wrappedValue)): - assert False diff --git a/src/ifcbimtester/examples/steps/attributes_psets_de.py b/src/ifcbimtester/examples/steps/attributes_psets_de.py deleted file mode 100644 index 941350becd..0000000000 --- a/src/ifcbimtester/examples/steps/attributes_psets_de.py +++ /dev/null @@ -1,18 +0,0 @@ -from behave import step - -import attributes_psets_methods as apm -from utils import switch_locale - - -the_lang = "de" - - -@step("An alle {ifc_class} Bauteile ist im PSet {pset} das Attribut {aproperty} angehängt") -def step_impl(context, ifc_class, aproperty, pset): - switch_locale(context.localedir, the_lang) - apm.eleclass_has_property_in_pset( - context, - ifc_class, - aproperty, - pset - ) diff --git a/src/ifcbimtester/examples/steps/attributes_psets_fr.py b/src/ifcbimtester/examples/steps/attributes_psets_fr.py deleted file mode 100644 index 29030d583e..0000000000 --- a/src/ifcbimtester/examples/steps/attributes_psets_fr.py +++ /dev/null @@ -1,21 +0,0 @@ -from behave import step - -import attributes_psets_methods as apm -from utils import switch_locale - - -the_lang = "fr" - - -""" -# TODO the next line needs translation -@step("All {ifc_class} elements have an {aproperty} property in the {pset} pset") -def step_impl(context, ifc_class, aproperty, pset): - switch_locale(context.localedir, the_lang) - apm.eleclass_has_property_in_pset( - context, - ifc_class, - aproperty, - pset - ) -""" diff --git a/src/ifcbimtester/examples/steps/attributes_psets_methods.py b/src/ifcbimtester/examples/steps/attributes_psets_methods.py deleted file mode 100644 index 5e5fbfa08e..0000000000 --- a/src/ifcbimtester/examples/steps/attributes_psets_methods.py +++ /dev/null @@ -1,36 +0,0 @@ -import gettext # noqa - -from utils import assert_elements -from utils import IfcFile - - -def eleclass_has_property_in_pset( - context, ifc_class, aproperty, pset -): - - context.falseelems = [] - context.falseguids = [] - context.falseprops = {} - from ifcopenshell.util.element import get_psets - - elements = IfcFile.get().by_type(ifc_class) - for elem in elements: - psets = get_psets(elem) - if not (pset in psets and aproperty in psets[pset]): - context.falseelems.append(str(elem)) - context.falseguids.append(elem.GlobalId) - context.falseprops[elem.id()] = str(psets) - - context.elemcount = len(elements) - context.falsecount = len(context.falseelems) - assert_elements( - ifc_class, - context.elemcount, - context.falsecount, - context.falseelems, - message_all_falseelems=_("All {elemcount} {ifc_class} elements are missing the property {parameter} in the pset."), - message_some_falseelems=_("The following {falsecount} of {elemcount} {ifc_class} elements are missing the property {parameter} in the pset: {falseelems}"), - message_no_elems=_("There are no {ifc_class} elements in the IFC file."), - parameter=aproperty - ) - # the pset name is missing in the failing message, but it is in the step test name From 492df6845b3c1c9b51f5d9f99c0af6f094f5d57d Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Sat, 24 Jul 2021 19:29:33 -0500 Subject: [PATCH 057/168] cleaned up list of hotkeys a bit (#1586) --- .../blenderbim/bim/module/model/workspace.py | 41 ++++++++++++++++--- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index 693ed8c8fa..60ea85a1a2 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -37,26 +37,57 @@ class BimTool(WorkSpaceTool): row.prop(props, "relating_type", text="") row.label(text="", icon="BLANK1") - + row = layout.row(align=True) row.label(text="", icon="EVENT_SHIFT") - row.label(text="Add", icon="EVENT_A") + row.label(text="Add Type Instance", icon="EVENT_A") if props.ifc_class == "IfcWallType": + row = layout.row(align=True) + row.label(text="Join") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") row.label(text="Extend", icon="EVENT_E") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") row.label(text="Butt", icon="EVENT_T") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") row.label(text="Mitre", icon="EVENT_Y") + + + + row = layout.row(align=True) + row.label(text="Wall Tools") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") row.label(text="Flip", icon="EVENT_F") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") row.label(text="Split", icon="EVENT_S") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") row.label(text="Opening", icon="EVENT_O") if props.ifc_class == "IfcSlabType": + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") row.label(text="Opening", icon="EVENT_O") - row.label(text="", icon="EVENT_X") - row.label(text="", icon="EVENT_C") - row.label(text="", icon="EVENT_V") + row = layout.row(align=True) row.label(text="Align") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") + row.label(text="Align Exterior", icon="EVENT_X") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") + row.label(text="Align Centerline", icon="EVENT_C") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") + row.label(text="Align Interior", icon="EVENT_V") + row = layout.row(align=True) + + row = layout.row(align=True) row.label(text="", icon="EVENT_ALT") row.label(text="Opening", icon="EVENT_O") From 8ca6183313e4692941f9daa9b76bdf8df86d84fb Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jul 2021 11:39:11 +1000 Subject: [PATCH 058/168] Fix #169. New recipe to fix duplicate and invalid GlobalIds. --- .../ifcpatch/recipes/RegenerateGlobalIds.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py diff --git a/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py b/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py new file mode 100644 index 0000000000..67cd3af170 --- /dev/null +++ b/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py @@ -0,0 +1,27 @@ +import ifcopenshell + + +class Patcher: + def __init__(self, src, file, logger, args=None): + self.src = src + self.file = file + self.logger = logger + self.args = args + + def patch(self): + if self.args and self.args[0] == "DUPLICATE": + guids = set() + for element in self.file.by_type("IfcRoot"): + if element.GlobalId in guids: + element.GlobalId = ifcopenshell.guid.new() + elif len(element.GlobalId) != 22 or element.GlobalId[0] not in "0123": + element.GlobalId = ifcopenshell.guid.new() + else: + try: + ifcopenshell.guid.expand(element.GlobalId) + except: + element.GlobalId = ifcopenshell.guid.new() + guids.add(element.GlobalId) + else: + for element in self.file.by_type("IfcRoot"): + element.GlobalId = ifcopenshell.guid.new() From 07f19ad80af5165e6dc7a23b6b2008f40f2640b2 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jul 2021 12:00:05 +1000 Subject: [PATCH 059/168] New patch to fix duplicate Revit types. See commit message for details. Types in Revit are secretly duplicated (or more) if they are mirrored or hosted in another object unbeknownst to the user. So what the user thinks is a single construction type in Revit ends up being multiple IFC types. This leads to incorrect results when someone interrogates the IFC file. This is fundamentally an issue in the way Revit handles element mirroring and hosting, so there is no fix on the Revit side, so this workaround mitigates the issue by doing a shallow merge of the type objects. --- .../recipes/MergeDuplicateRevitTypes.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/ifcpatch/ifcpatch/recipes/MergeDuplicateRevitTypes.py diff --git a/src/ifcpatch/ifcpatch/recipes/MergeDuplicateRevitTypes.py b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateRevitTypes.py new file mode 100644 index 0000000000..f1381411d5 --- /dev/null +++ b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateRevitTypes.py @@ -0,0 +1,21 @@ +import ifcopenshell +import ifcopenshell.util.element + + +class Patcher: + def __init__(self, src, file, logger, args=None): + self.src = src + self.file = file + self.logger = logger + self.args = args + + def patch(self): + tags = {} + for element in self.file.by_type("IfcTypeObject"): + original_element = tags.get(element.Tag, None) + if original_element: + for inverse in self.file.get_inverse(element): + ifcopenshell.util.element.replace_attribute(inverse, element, original_element) + self.file.remove(element) + else: + tags[element.Tag] = element From c00bcc78e91a439318f0c3c481c6d05bf06e9301 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jul 2021 14:06:49 +1000 Subject: [PATCH 060/168] Editing voids or dumb walls now auto enable dynamic voids, so openings work well with them. --- .../blenderbim/bim/module/model/opening.py | 22 +++++++++++++++++- .../blenderbim/bim/module/model/wall.py | 23 ++++++++++++++++++- .../blenderbim/bim/module/model/workspace.py | 5 ++-- 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/opening.py b/src/blenderbim/blenderbim/bim/module/model/opening.py index 795035aa41..4a53b564dc 100644 --- a/src/blenderbim/blenderbim/bim/module/model/opening.py +++ b/src/blenderbim/blenderbim/bim/module/model/opening.py @@ -1,6 +1,8 @@ import bpy import bmesh import blenderbim.bim.handler +import ifcopenshell +import ifcopenshell.util.representation from blenderbim.bim.ifc import IfcStore from math import pi from bpy.types import Operator @@ -13,7 +15,7 @@ def element_listener(element, obj): def mode_callback(obj, data): - for obj in bpy.context.selected_objects + [bpy.context.active_object]: + for obj in set(bpy.context.selected_objects + [bpy.context.active_object]): if ( obj.mode != "EDIT" or not obj.data @@ -25,6 +27,24 @@ def mode_callback(obj, data): product = IfcStore.get_file().by_id(obj.BIMObjectProperties.ifc_definition_id) if not product.is_a("IfcOpeningElement"): return + for rel in product.VoidsElements: + building_element_obj = IfcStore.get_element(rel.RelatingBuildingElement.id()) + if not building_element_obj: + continue + if [m for m in building_element_obj.modifiers if m.type == "BOOLEAN"]: + continue + representation = ifcopenshell.util.representation.get_representation( + rel.RelatingBuildingElement, "Model", "Body", "MODEL_VIEW" + ) + if not representation: + continue + bpy.ops.bim.switch_representation( + obj=building_element_obj.name, + should_switch_all_meshes=True, + should_reload=True, + ifc_definition_id=representation.id(), + disable_opening_subtractions=True, + ) IfcStore.edited_objs.add(obj) bm = bmesh.from_edit_mesh(obj.data) bmesh.ops.dissolve_limit(bm, angle_limit=pi / 180 * 1, verts=bm.verts, edges=bm.edges) diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 761ecb7959..756dbb1a67 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -20,7 +20,7 @@ def element_listener(element, obj): def mode_callback(obj, data): - for obj in bpy.context.selected_objects + [bpy.context.active_object]: + for obj in set(bpy.context.selected_objects + [bpy.context.active_object]): if ( obj.mode != "EDIT" or not obj.data @@ -33,7 +33,28 @@ def mode_callback(obj, data): parametric = ifcopenshell.util.element.get_psets(product).get("EPset_Parametric") if not parametric or parametric["Engine"] != "BlenderBIM.DumbWall": return + if product.HasOpenings: + if [m for m in obj.modifiers if m.type == "BOOLEAN"]: + continue + representation = ifcopenshell.util.representation.get_representation( + product, "Model", "Body", "MODEL_VIEW" + ) + if not representation: + continue + bpy.ops.object.mode_set(mode='OBJECT') + bpy.ops.bim.switch_representation( + obj=obj.name, + should_switch_all_meshes=True, + should_reload=True, + ifc_definition_id=representation.id(), + disable_opening_subtractions=True, + ) + bpy.ops.object.mode_set(mode='EDIT') IfcStore.edited_objs.add(obj) + bm = bmesh.from_edit_mesh(obj.data) + bmesh.ops.dissolve_limit(bm, angle_limit=pi / 180 * 1, verts=bm.verts, edges=bm.edges) + bmesh.update_edit_mesh(obj.data) + bm.free() class AddWallOpening(bpy.types.Operator): diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index 60ea85a1a2..ec391f669d 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -37,6 +37,7 @@ class BimTool(WorkSpaceTool): row.prop(props, "relating_type", text="") row.label(text="", icon="BLANK1") + row = layout.row(align=True) row.label(text="", icon="EVENT_SHIFT") row.label(text="Add Type Instance", icon="EVENT_A") @@ -54,8 +55,6 @@ class BimTool(WorkSpaceTool): row.label(text="", icon="EVENT_SHIFT") row.label(text="Mitre", icon="EVENT_Y") - - row = layout.row(align=True) row.label(text="Wall Tools") row = layout.row(align=True) @@ -86,11 +85,11 @@ class BimTool(WorkSpaceTool): row.label(text="Align Interior", icon="EVENT_V") row = layout.row(align=True) - row = layout.row(align=True) row.label(text="", icon="EVENT_ALT") row.label(text="Opening", icon="EVENT_O") + class Hotkey(bpy.types.Operator): bl_idname = "bim.hotkey" bl_label = "Hotkey" From 6337d04efca5d692aa18655b5d49d4b13602efa3 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 25 Jul 2021 18:42:28 +1000 Subject: [PATCH 061/168] IfcSverchok API node now actually executes API calls and has descriptive tooltips --- .../ifcopenshell/api/__init__.py | 2 +- src/ifcsverchok/nodes/ifc/api.py | 71 ++++++++++++------- 2 files changed, 48 insertions(+), 25 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/__init__.py index fdfb7d9a5d..e0e7e15503 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/api/__init__.py @@ -118,7 +118,7 @@ def extract_docs(module, usecase): if name == "self": continue inputs[name] = {"name": name} - if not isinstance(parameter.default, object): + if isinstance(parameter.default, (str, float, int, bool)): inputs[name]["default"] = parameter.default type_hints = typing.get_type_hints(function_init) diff --git a/src/ifcsverchok/nodes/ifc/api.py b/src/ifcsverchok/nodes/ifc/api.py index a4a3aeab13..81bb53c06a 100644 --- a/src/ifcsverchok/nodes/ifc/api.py +++ b/src/ifcsverchok/nodes/ifc/api.py @@ -5,34 +5,52 @@ import ifcsverchok.helper from bpy.props import StringProperty, EnumProperty from sverchok.node_tree import SverchCustomTreeNode from sverchok.data_structure import updateNode -#from blenderbim.bim.module.root.prop import getIfcClasses, getIfcProducts, refreshClasses, refreshPredefinedTypes + + +def update_usecase(self, context): + module_usecase = self.get_module_usecase() + if module_usecase: + self.generate_node(*module_usecase) + + +class SvIfcTooltip(bpy.types.Operator): + bl_idname = "node.sv_ifc_tooltip" + bl_label = "IFC Info" + tooltip: bpy.props.StringProperty() + + @classmethod + def description(cls, context, properties): + return properties.tooltip + + def execute(self, context): + return {"FINISHED"} class SvIfcApi(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): bl_idname = "SvIfcApi" bl_label = "IFC API" - usecase: StringProperty(name="Usecase", update=updateNode) - #schema: StringProperty(name="schema", update=updateNode, default="IFC4") - #ifc_product: EnumProperty(items=getIfcProducts, name="Products", update=refreshClasses) - #ifc_class: EnumProperty(items=getIfcClasses, name="Class", update=refreshPredefinedTypes) - #custom_ifc_class: StringProperty(name="Custom Ifc Class", update=updateNode) + tooltip: StringProperty(name="Tooltip") + usecase: StringProperty(name="Usecase", update=update_usecase) def sv_init(self, context): self.inputs.new("SvStringsSocket", "usecase").prop_name = "usecase" - #self.inputs.new("SvStringsSocket", "schema").prop_name = "schema" - #self.inputs.new("SvStringsSocket", "ifc_product").prop_name = "ifc_product" - #self.inputs.new("SvStringsSocket", "ifc_class").prop_name = "ifc_class" - #self.inputs.new("SvStringsSocket", "custom_ifc_class").prop_name = "custom_ifc_class" self.outputs.new("SvVerticesSocket", "file") + def draw_buttons(self, context, layout): + op = layout.operator("node.sv_ifc_tooltip", text="", icon="QUESTION", emboss=False) + op.tooltip = self.tooltip + def process(self): - print('process') - #self.sv_input_names = ["file", "ifc_product", "ifc_class", "custom_ifc_class"] + print("process") + module_usecase = self.get_module_usecase() + if module_usecase: + self.sv_input_names = [i.name for i in self.inputs] + super().process() + + def get_module_usecase(self): usecase = self.inputs["usecase"].sv_get()[0][0] if usecase: - self.generate_node(*usecase.split(".")) - self.sv_input_names = ["usecase"] - super().process() + return usecase.split(".") def generate_node(self, module, usecase): try: @@ -43,23 +61,28 @@ class SvIfcApi(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCor while len(self.inputs) > 1: self.inputs.remove(self.inputs[-1]) + self.tooltip = "" for name, data in node_data["inputs"].items(): - setattr(SvIfcApi, name, StringProperty(name=name)) + setattr(SvIfcApi, name, StringProperty(name=name, update=updateNode)) self.inputs.new("SvStringsSocket", name).prop_name = name + if "default" in data: + self.tooltip = f"{name} ({data['default']}): {data['description']}\n" + else: + self.tooltip = f"{name}: {data['description']}\n" + self.tooltip = self.tooltip.strip() - #def process_ifc(self, file, ifc_product, ifc_class, custom_ifc_class): - def process_ifc(self, usecase): - print('run') - #self.outputs["file"].sv_set([ifcopenshell.api.run("project.create_file", version=schema)]) - #if custom_ifc_class: - # self.outputs["entity"].sv_set([file.by_type(custom_ifc_class)]) - #else: - # self.outputs["entity"].sv_set([file.by_type(ifc_class)]) + def process_ifc(self, usecase, *setting_values): + if usecase: + settings = dict(zip(self.sv_input_names[1:], setting_values)) + settings = {k: v for k, v in settings.items() if v != ""} + self.outputs["file"].sv_set([ifcopenshell.api.run(usecase, **settings)]) def register(): + bpy.utils.register_class(SvIfcTooltip) bpy.utils.register_class(SvIfcApi) def unregister(): bpy.utils.unregister_class(SvIfcApi) + bpy.utils.unregister_class(SvIfcTooltip) From aa9b6b61fa62e95741b93a6bee1070224fa73234 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 26 Jul 2021 09:45:46 +1000 Subject: [PATCH 062/168] Fix bug where material profile data was not purged since a profile module didn't exist. See #1588. --- src/blenderbim/blenderbim/bim/__init__.py | 1 + src/blenderbim/blenderbim/bim/module/profile/__init__.py | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 src/blenderbim/blenderbim/bim/module/profile/__init__.py diff --git a/src/blenderbim/blenderbim/bim/__init__.py b/src/blenderbim/blenderbim/bim/__init__.py index d62f3e9e12..92699dc4dd 100644 --- a/src/blenderbim/blenderbim/bim/__init__.py +++ b/src/blenderbim/blenderbim/bim/__init__.py @@ -32,6 +32,7 @@ if bpy is not None: "system": None, "structural": None, "boundary": None, + "profile": None, "material": None, "style": None, "layer": None, diff --git a/src/blenderbim/blenderbim/bim/module/profile/__init__.py b/src/blenderbim/blenderbim/bim/module/profile/__init__.py new file mode 100644 index 0000000000..3f64d0c93c --- /dev/null +++ b/src/blenderbim/blenderbim/bim/module/profile/__init__.py @@ -0,0 +1,9 @@ +classes = () + + +def register(): + pass + + +def unregister(): + pass From 186c4dd11804ffd4d3311b456d2b5fd608f07a95 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 26 Jul 2021 20:24:39 +1000 Subject: [PATCH 063/168] New experimental serialiser-based drawing generation code. See #1153. See #1564. --- .../blenderbim/bim/module/drawing/operator.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/drawing/operator.py b/src/blenderbim/blenderbim/bim/module/drawing/operator.py index 2a55ce3c05..07f7060477 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/operator.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/operator.py @@ -7,6 +7,8 @@ import bmesh import shutil import subprocess import webbrowser +import ifcopenshell +import ifcopenshell.geom import ifcopenshell.util.selector import ifcopenshell.util.representation import blenderbim.bim.module.drawing.svgwriter as svgwriter @@ -231,6 +233,37 @@ class CreateDrawing(bpy.types.Operator): svg_path = os.path.join(context.scene.BIMProperties.data_dir, "cache", self.drawing_name + "-linework.svg") if os.path.isfile(svg_path) and self.props.should_use_linework_cache: return svg_path + # This is a work in progress. See #1153 and #1564. + # Switch from old to new if you are testing v0.7.0 + self.generate_linework_old(svg_path) + #self.generate_linework_new(svg_path) + return svg_path + + def generate_linework_new(self, svg_path): + settings = ifcopenshell.geom.settings( + APPLY_DEFAULT_MATERIALS=True, + DISABLE_TRIANGULATION=True, + INCLUDE_CURVES=True, + EXCLUDE_SOLIDS_AND_SURFACES=False, + ) + buffer = ifcopenshell.geom.serializers.buffer() + serialiser = ifcopenshell.geom.serializers.svg(buffer, settings) + serialiser.setFile(self.file) + serialiser.setElevationRef("DRAWING") + serialiser.setUseNamespace(True) + serialiser.setAlwaysProject(True) + serialiser.setUseHlrPoly(True) + serialiser.setWithoutStoreys(True) + excluded_elements = [] + for ifc_class in ["IfcSpace", "IfcOpeningElement", "IfcDoor", "IfcWindow"]: + excluded_elements += self.file.by_type(ifc_class) + for element in ifcopenshell.geom.iterate(settings, self.file, exclude=excluded_elements): + serialiser.write(element) + serialiser.finalize() + with open(svg_path, "w") as svg: + svg.write(buffer.get_value()) + + def generate_linework_old(self, svg_path): ifcconvert_path = os.path.join(cwd, "..", "..", "..", "libs", "IfcConvert") subprocess.run( [ From f8e9f81b9b3def9755842464ee00ca2add266665 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 26 Jul 2021 21:13:15 +1000 Subject: [PATCH 064/168] Parametric profiles now auto sync prior to depth changes. See #1588. --- .../blenderbim/bim/module/drawing/operator.py | 7 +++- .../blenderbim/bim/module/model/handler.py | 5 +++ .../blenderbim/bim/module/model/profile.py | 38 +++++++++++++------ 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/drawing/operator.py b/src/blenderbim/blenderbim/bim/module/drawing/operator.py index 07f7060477..68152795a3 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/operator.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/operator.py @@ -7,6 +7,7 @@ import bmesh import shutil import subprocess import webbrowser +import multiprocessing import ifcopenshell import ifcopenshell.geom import ifcopenshell.util.selector @@ -236,7 +237,7 @@ class CreateDrawing(bpy.types.Operator): # This is a work in progress. See #1153 and #1564. # Switch from old to new if you are testing v0.7.0 self.generate_linework_old(svg_path) - #self.generate_linework_new(svg_path) + # self.generate_linework_new(svg_path) return svg_path def generate_linework_new(self, svg_path): @@ -257,7 +258,9 @@ class CreateDrawing(bpy.types.Operator): excluded_elements = [] for ifc_class in ["IfcSpace", "IfcOpeningElement", "IfcDoor", "IfcWindow"]: excluded_elements += self.file.by_type(ifc_class) - for element in ifcopenshell.geom.iterate(settings, self.file, exclude=excluded_elements): + for element in ifcopenshell.geom.iterate( + settings, self.file, multiprocessing.cpu_count(), exclude=excluded_elements + ): serialiser.write(element) serialiser.finalize() with open(svg_path, "w") as svg: diff --git a/src/blenderbim/blenderbim/bim/module/model/handler.py b/src/blenderbim/blenderbim/bim/module/model/handler.py index 58bfa687aa..7dc1fd8e43 100644 --- a/src/blenderbim/blenderbim/bim/module/model/handler.py +++ b/src/blenderbim/blenderbim/bim/module/model/handler.py @@ -57,6 +57,11 @@ def load_post(*args): ifcopenshell.api.add_pre_listener( "geometry.add_representation", "BlenderBIM.DumbProfile.EnsureSolid", profile.ensure_solid ) + ifcopenshell.api.add_pre_listener( + "material.edit_profile", + "BlenderBIM.DumbProfile.SyncObjectFromProfile", + profile.DumbProfileRegenerator().sync_object_from_profile, + ) ifcopenshell.api.add_post_listener( "material.edit_profile", "BlenderBIM.DumbProfile.RegenerateFromProfile", diff --git a/src/blenderbim/blenderbim/bim/module/model/profile.py b/src/blenderbim/blenderbim/bim/module/model/profile.py index 27240bf9a1..f98c91b894 100644 --- a/src/blenderbim/blenderbim/bim/module/model/profile.py +++ b/src/blenderbim/blenderbim/bim/module/model/profile.py @@ -20,7 +20,7 @@ def element_listener(element, obj): def mode_callback(obj, data): - for obj in bpy.context.selected_objects + [bpy.context.active_object]: + for obj in set(bpy.context.selected_objects + [bpy.context.active_object]): if ( obj.mode != "EDIT" or not obj.data @@ -147,30 +147,40 @@ class DumbProfileGenerator: class DumbProfileRegenerator: def regenerate_from_profile(self, usecase_path, ifc_file, settings): - self.file = IfcStore.get_file() - self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) + self.file = ifc_file profile = settings["profile"].Profile if not profile: return + for element in self.get_elements_using_profile(profile): + self.change_profile(element) + + def sync_object_from_profile(self, usecase_path, ifc_file, settings): + self.file = ifc_file + profile = settings["profile"].Profile + if not profile: + return + for element in self.get_elements_using_profile(profile): + self.sync_object(element) + + def get_elements_using_profile(self, profile): + results = [] for profile_set in [ mp.ToMaterialProfileSet[0] for mp in self.file.get_inverse(profile) if mp.is_a("IfcMaterialProfile") ]: - for inverse in ifc_file.get_inverse(profile_set): + for inverse in self.file.get_inverse(profile_set): if not inverse.is_a("IfcMaterialProfileSetUsage"): continue - if ifc_file.schema == "IFC2X3": - for rel in ifc_file.get_inverse(inverse): + if self.file.schema == "IFC2X3": + for rel in self.file.get_inverse(inverse): if not rel.is_a("IfcRelAssociatesMaterial"): continue - for element in rel.RelatedObjects: - self.change_profile(element) + results.extend(rel.RelatedObjects) else: for rel in inverse.AssociatedTo: - for element in rel.RelatedObjects: - self.change_profile(element) + results.extend(rel.RelatedObjects) + return results def regenerate_from_type(self, usecase_path, ifc_file, settings): - self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) new_material = ifcopenshell.util.element.get_material(settings["relating_type"]) if not new_material or not new_material.is_a("IfcMaterialProfileSet"): return @@ -185,3 +195,9 @@ class DumbProfileRegenerator: bpy.ops.bim.switch_representation( obj=obj.name, ifc_definition_id=representation.id(), should_reload=True, should_switch_all_meshes=True ) + + def sync_object(self, element): + obj = IfcStore.get_element(element.id()) + if not obj or obj not in IfcStore.edited_objs: + return + bpy.ops.bim.update_representation(obj=obj.name) From 77206cb761662c92c7facb78af423b5d9016359b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jul 2021 09:42:42 +1000 Subject: [PATCH 065/168] Fix #1588. Profiles now auto recalculate cardinal points after editing. --- .../blenderbim/bim/module/model/profile.py | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/profile.py b/src/blenderbim/blenderbim/bim/module/model/profile.py index f98c91b894..e3e3d8ce06 100644 --- a/src/blenderbim/blenderbim/bim/module/model/profile.py +++ b/src/blenderbim/blenderbim/bim/module/model/profile.py @@ -22,8 +22,7 @@ def element_listener(element, obj): def mode_callback(obj, data): for obj in set(bpy.context.selected_objects + [bpy.context.active_object]): if ( - obj.mode != "EDIT" - or not obj.data + not obj.data or not isinstance(obj.data, (bpy.types.Mesh, bpy.types.Curve, bpy.types.TextCurve)) or not obj.BIMObjectProperties.ifc_definition_id or not bpy.context.scene.BIMProjectProperties.is_authoring @@ -33,11 +32,43 @@ def mode_callback(obj, data): parametric = ifcopenshell.util.element.get_psets(product).get("EPset_Parametric") if not parametric or parametric["Engine"] != "BlenderBIM.DumbProfile": return - IfcStore.edited_objs.add(obj) - bm = bmesh.from_edit_mesh(obj.data) - bmesh.ops.dissolve_limit(bm, angle_limit=pi / 180 * 1, verts=bm.verts, edges=bm.edges) - bmesh.update_edit_mesh(obj.data) - bm.free() + if obj.mode == "EDIT": + IfcStore.edited_objs.add(obj) + bm = bmesh.from_edit_mesh(obj.data) + bmesh.ops.dissolve_limit(bm, angle_limit=pi / 180 * 1, verts=bm.verts, edges=bm.edges) + bmesh.update_edit_mesh(obj.data) + bm.free() + else: + material_usage = ifcopenshell.util.element.get_material(product) + x, y = obj.dimensions[0:2] + if not material_usage.CardinalPoint: + new_origin = obj.matrix_world @ (Vector(obj.bound_box[0]) + (Vector((x, y, 0)) / 2)) + elif material_usage.CardinalPoint == 1: + new_origin = obj.matrix_world @ Vector(obj.bound_box[4]) + elif material_usage.CardinalPoint == 2: + new_origin = obj.matrix_world @ (Vector(obj.bound_box[0]) + (Vector((x, 0, 0)) / 2)) + elif material_usage.CardinalPoint == 3: + new_origin = obj.matrix_world @ Vector(obj.bound_box[0]) + elif material_usage.CardinalPoint == 4: + new_origin = obj.matrix_world @ (Vector(obj.bound_box[4]) + (Vector((0, y, 0)) / 2)) + elif material_usage.CardinalPoint == 5: + new_origin = obj.matrix_world @ (Vector(obj.bound_box[0]) + (Vector((x, y, 0)) / 2)) + elif material_usage.CardinalPoint == 6: + new_origin = obj.matrix_world @ (Vector(obj.bound_box[0]) + (Vector((0, y, 0)) / 2)) + elif material_usage.CardinalPoint == 7: + new_origin = obj.matrix_world @ Vector(obj.bound_box[7]) + elif material_usage.CardinalPoint == 8: + new_origin = obj.matrix_world @ (Vector(obj.bound_box[3]) + (Vector((x, 0, 0)) / 2)) + elif material_usage.CardinalPoint == 9: + new_origin = obj.matrix_world @ Vector(obj.bound_box[3]) + if (obj.matrix_world.translation - new_origin).length < 0.001: + return + obj.data.transform( + Matrix.Translation( + (obj.matrix_world.inverted().to_quaternion() @ (obj.matrix_world.translation - new_origin)) + ) + ) + obj.matrix_world.translation = new_origin def ensure_solid(usecase_path, ifc_file, settings): From 3b401ec28fb07da349c32ab1ffb24f534eebeb53 Mon Sep 17 00:00:00 2001 From: Carmen Fan Date: Mon, 26 Jul 2021 15:53:52 +0100 Subject: [PATCH 066/168] fix hash define logical operation --- src/ifcgeom/IfcGeom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcgeom/IfcGeom.h b/src/ifcgeom/IfcGeom.h index a02036a9b7..ccf7f0e8fe 100644 --- a/src/ifcgeom/IfcGeom.h +++ b/src/ifcgeom/IfcGeom.h @@ -490,7 +490,7 @@ public: prs_styles.push_back(style_l); } } -#if defined SCHEMA_HAS_IfcStyleAssignmentSelect or defined SCHEMA_HAS_IfcPresentationStyleAssignment +#if defined(SCHEMA_HAS_IfcStyleAssignmentSelect) || defined(SCHEMA_HAS_IfcPresentationStyleAssignment) } #endif From f7765c531b5b45867c60bcbe18cc4bb83929002e Mon Sep 17 00:00:00 2001 From: Carmen Fan Date: Tue, 27 Jul 2021 08:36:44 +0100 Subject: [PATCH 067/168] GeomIterator is not exposed for use if the library is built dynamically on windows (#1583) --- src/ifcgeom_schema_agnostic/IfcGeomIterator.h | 6 +++--- .../IteratorImplementation.cpp | 16 ++++++++-------- .../IteratorImplementation.h | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/ifcgeom_schema_agnostic/IfcGeomIterator.h b/src/ifcgeom_schema_agnostic/IfcGeomIterator.h index 3d86660cd8..8ab70b48e7 100644 --- a/src/ifcgeom_schema_agnostic/IfcGeomIterator.h +++ b/src/ifcgeom_schema_agnostic/IfcGeomIterator.h @@ -45,7 +45,7 @@ * * * IfcGeom::Iterator::get() * * returns a pointer to the current IfcGeom::Element * - * * + * * * IfcGeom::Iterator::next() * * returns true iff a following entity is available for a successive call to * * IfcGeom::Iterator::get() * @@ -69,9 +69,9 @@ #endif namespace IfcGeom { - + template - class Iterator { + class IFC_GEOM_API Iterator { private: Iterator(const Iterator&); // N/I Iterator& operator=(const Iterator&); // N/I diff --git a/src/ifcgeom_schema_agnostic/IteratorImplementation.cpp b/src/ifcgeom_schema_agnostic/IteratorImplementation.cpp index a664db0378..731881526f 100644 --- a/src/ifcgeom_schema_agnostic/IteratorImplementation.cpp +++ b/src/ifcgeom_schema_agnostic/IteratorImplementation.cpp @@ -8,9 +8,9 @@ IteratorFactoryImplementation& iterator_implementations() { return impl; } -template IteratorFactoryImplementation& iterator_implementations(); -template IteratorFactoryImplementation& iterator_implementations(); -template IteratorFactoryImplementation& iterator_implementations(); +template IFC_GEOM_API IteratorFactoryImplementation& iterator_implementations(); +template IFC_GEOM_API IteratorFactoryImplementation& iterator_implementations(); +template IFC_GEOM_API IteratorFactoryImplementation& iterator_implementations(); #ifdef HAS_SCHEMA_2x3 template @@ -46,19 +46,19 @@ template IteratorFactoryImplementation::IteratorFactoryImplementation() { #ifdef HAS_SCHEMA_2x3 init_IteratorImplementation_Ifc2x3(this); -#endif +#endif #ifdef HAS_SCHEMA_4 init_IteratorImplementation_Ifc4(this); -#endif +#endif #ifdef HAS_SCHEMA_4x1 init_IteratorImplementation_Ifc4x1(this); -#endif +#endif #ifdef HAS_SCHEMA_4x2 init_IteratorImplementation_Ifc4x2(this); -#endif +#endif #ifdef HAS_SCHEMA_4x3_rc1 init_IteratorImplementation_Ifc4x3_rc1(this); -#endif +#endif #ifdef HAS_SCHEMA_4x3_rc2 init_IteratorImplementation_Ifc4x3_rc2(this); #endif diff --git a/src/ifcgeom_schema_agnostic/IteratorImplementation.h b/src/ifcgeom_schema_agnostic/IteratorImplementation.h index 34badca50e..6ba9a55a34 100644 --- a/src/ifcgeom_schema_agnostic/IteratorImplementation.h +++ b/src/ifcgeom_schema_agnostic/IteratorImplementation.h @@ -46,7 +46,7 @@ struct get_factory_type { }; template -class IteratorFactoryImplementation : public std::map::type> { +class IFC_GEOM_API IteratorFactoryImplementation : public std::map::type> { public: IteratorFactoryImplementation(); void bind(const std::string& schema_name, typename get_factory_type::type fn); @@ -78,4 +78,4 @@ namespace IfcGeom { } -#endif \ No newline at end of file +#endif From 1f241912f22e56383dacefeed35299bc0b192969 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jul 2021 20:44:03 +1000 Subject: [PATCH 068/168] Make recipe name generic --- .../{MergeDuplicateRevitTypes.py => MergeDuplicateTypesByTag.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/ifcpatch/ifcpatch/recipes/{MergeDuplicateRevitTypes.py => MergeDuplicateTypesByTag.py} (100%) diff --git a/src/ifcpatch/ifcpatch/recipes/MergeDuplicateRevitTypes.py b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypesByTag.py similarity index 100% rename from src/ifcpatch/ifcpatch/recipes/MergeDuplicateRevitTypes.py rename to src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypesByTag.py From 5d246a8716c95b772e76b0d20204e6e0aa9f1577 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jul 2021 20:45:21 +1000 Subject: [PATCH 069/168] Fix bug where module data was not purged correctly when a new scene was started --- src/blenderbim/blenderbim/bim/handler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/handler.py b/src/blenderbim/blenderbim/bim/handler.py index 2fb88a6df6..bb7212491c 100644 --- a/src/blenderbim/blenderbim/bim/handler.py +++ b/src/blenderbim/blenderbim/bim/handler.py @@ -123,12 +123,12 @@ def purge_module_data(): @persistent def loadIfcStore(scene): IfcStore.purge() + purge_module_data() ifc_file = IfcStore.get_file() if not ifc_file: return IfcStore.get_schema() IfcStore.reload_linked_elements() - purge_module_data() @persistent From f5e089e0fd81244943c71fa2b1df4d0be02476d0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jul 2021 20:46:39 +1000 Subject: [PATCH 070/168] Material based surface styles are now supported on import as a style fallback. See #1585. --- src/blenderbim/blenderbim/bim/import_ifc.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 4cf9a37103..542cde68b9 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -54,9 +54,24 @@ class MaterialCreator: if not self.mesh or self.mesh.name in self.parsed_meshes: return self.parsed_meshes.add(self.mesh.name) + self.add_default_material_surface_style(element) if self.parse_representations(element): self.assign_material_slots_to_faces() + def add_default_material_surface_style(self, element): + element_material = ifcopenshell.util.element.get_material(element) + if not element_material: + return + for material in [m for m in self.ifc_importer.file.traverse(element_material) if m.is_a("IfcMaterial")]: + if not material.HasRepresentation: + continue + surface_style = [ + s for s in self.ifc_importer.file.traverse(material.HasRepresentation[0]) if s.is_a("IfcSurfaceStyle") + ] + if surface_style: + self.mesh.materials.append(self.styles[surface_style[0].id()]) + return + def load_existing_materials(self): for material in bpy.data.materials: if material.BIMObjectProperties.ifc_definition_id: @@ -568,9 +583,7 @@ class IfcImporter: ) ) checkpoint = time.time() - self.update_progress( - ((total_created / approx_total_products) * progress_range) + start_progress - ) + self.update_progress(((total_created / approx_total_products) * progress_range) + start_progress) shape = iterator.get() if shape: product = self.file.by_id(shape.guid) From cfa0575263596c8ca9a931db4391ee7c7613bec2 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 27 Jul 2021 20:47:39 +1000 Subject: [PATCH 071/168] Minor fix --- src/ifcfm/ifcfm/parser.py | 40 +++++++++++-------- .../api/geometry/edit_object_placement.py | 1 + 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/ifcfm/ifcfm/parser.py b/src/ifcfm/ifcfm/parser.py index 9ce0b85f7f..fc67f57f37 100644 --- a/src/ifcfm/ifcfm/parser.py +++ b/src/ifcfm/ifcfm/parser.py @@ -216,7 +216,7 @@ class Parser: continue self.zones[element.Name + space.Name] = { "Name": element.Name, - "AuthorOrganizationName": "Cox Architecture", + "AuthorOrganizationName": element.OwnerHistory.OwningUser.TheOrganization.Name, "AuthorDate": ifcopenshell.util.date.ifc2datetime( element.OwnerHistory.CreationDate ).isoformat(), @@ -229,13 +229,13 @@ class Parser: def get_systems(self): for discipline, ifc in self.files.items(): - #if discipline == "arch": + # if discipline == "arch": # continue for element in ifc.by_type("IfcSystem"): name = element.Name self.systems[name] = { "Name": name, - "AuthorOrganizationName": "Fredon", + "AuthorOrganizationName": element.OwnerHistory.OwningUser.TheOrganization.Name, "AuthorDate": ifcopenshell.util.date.ifc2datetime(element.OwnerHistory.CreationDate).isoformat(), "Category": None, "ModelSoftware": element.OwnerHistory.OwningApplication.ApplicationFullName, @@ -255,10 +255,17 @@ class Parser: psets = ifcopenshell.util.element.get_psets(element) + # Hack category = None - if "Data" in psets and "COBie.Type.Category" in psets["Data"]: - if ":" in psets["Data"]["COBie.Type.Category"]: - category = psets["Data"]["COBie.Type.Category"].replace(" : ", ":") + if ifc_file == "arch": + #if "Data" in psets and "COBie.Type.Category" in psets["Data"]: + # if ":" in psets["Data"]["COBie.Type.Category"]: + # category = psets["Data"]["COBie.Type.Category"].replace(" : ", ":") + if "Data" in psets and "Classification.Uniclass.Pr.Number" in psets["Data"]: + category = f"{psets['Data']['Classification.Uniclass.Pr.Number']}:{psets['Data']['Classification.Uniclass.Pr.Description']}" + elif ifc_file == "hyd": + if "Data" in psets and "Classification.Uniclass.Pr.Number" in psets["Data"]: + category = f"{psets['Data']['Classification.Uniclass.Pr.Number']}:{psets['Data']['Classification.Uniclass.Pr.Description']}" self.types[name] = { "Name": name, @@ -281,7 +288,6 @@ class Parser: } def get_components(self): - org_map = {"arch": "Cox Architecture", "arch": "Bates Smart", "elec": "Fredon", "fire": "Premier Fire"} for discipline, ifc in self.files.items(): self.get_components_from_file(discipline) @@ -297,15 +303,17 @@ class Parser: space_name = None - # space = element.ContainedInStructure[0].RelatingStructure - # if space.is_a("IfcSpace"): - # space_name = space.Name - - psets = ifcopenshell.util.element.get_psets(element) - if "Data" in psets and "COBie.Component.Space" in psets["Data"]: - space_name = psets["Data"]["COBie.Component.Space"] - if space_name not in self.spaces: - space_name = None + # Nasty hack + if ifc_file == "arch": + psets = ifcopenshell.util.element.get_psets(element) + if "Data" in psets and "COBie.Component.Space" in psets["Data"]: + space_name = psets["Data"]["COBie.Component.Space"] + if space_name not in self.spaces: + space_name = None + else: + space = element.ContainedInStructure[0].RelatingStructure + if space.is_a("IfcSpace"): + space_name = space.Name self.components[name] = { "Name": name, diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py index 4dae72c37e..1400a768b3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py @@ -1,5 +1,6 @@ import numpy as np import ifcopenshell.api +import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.placement From 52f15d27b18dbafce9a6369e70dfc9021a2ba4b5 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jul 2021 17:48:36 +1000 Subject: [PATCH 072/168] Fix bug where import filters didn't properly exclude types and empty objects --- src/blenderbim/blenderbim/bim/import_ifc.py | 22 +++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 542cde68b9..19b7922b49 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -154,7 +154,7 @@ class IfcImporter: self.exclude_elements = set() self.project = None self.spatial_structure_elements = {} - self.elements = {} + self.elements = [] self.type_collection = None self.type_products = {} self.openings = {} @@ -475,7 +475,6 @@ class IfcImporter: grid_collection.objects.link(obj) def create_type_products(self): - type_products = self.file.by_type("IfcTypeProduct") for collection in self.project["blender"].children: if collection.name == "Types": self.type_collection = collection @@ -483,7 +482,15 @@ class IfcImporter: if not self.type_collection: self.type_collection = bpy.data.collections.new("Types") self.project["blender"].children.link(self.type_collection) + + if self.filter_mode in ["WHITELIST", "BLACKLIST"]: + type_products = set([ifcopenshell.util.element.get_type(e) for e in self.elements]) + else: + type_products = self.file.by_type("IfcTypeProduct") + for type_product in type_products: + if not type_product: + continue self.create_type_product(type_product) def create_type_product(self, element): @@ -604,7 +611,15 @@ class IfcImporter: def create_empty_and_2d_elements(self): curve_products = [] - for element in self.file.by_type("IfcElement"): + + if self.filter_mode == "WHITELIST": + self.elements = self.include_elements + elif self.filter_mode == "BLACKLIST": + self.elements = [e for e in self.file.by_type("IfcElement") if e not in self.exclude_elements] + else: + self.elements = self.file.by_type("IfcElement") + + for element in self.elements: if element.id() in self.added_data: continue if element.is_a("IfcPort"): @@ -949,7 +964,6 @@ class IfcImporter: def set_ifc_file(self): bpy.context.scene.BIMProperties.ifc_file = self.ifc_import_settings.input_file - IfcStore.file = self.file IfcStore.path = self.ifc_import_settings.input_file def calculate_unit_scale(self): From 5cab72deaaadccaf9184190fe639d03bf85fa7e3 Mon Sep 17 00:00:00 2001 From: dedicos Date: Wed, 28 Jul 2021 09:51:16 +0200 Subject: [PATCH 073/168] removed get_property in attributes_psets step file (not implemented yet) (#1596) * removed get_property in attributes_psets step file (not implemented yet) problem with stepmatcher remains * Fix pattern search for properties --- .../features/steps/attributes_psets/en.py | 41 ++++++++++++------- src/ifcbimtester/bimtester/reports.py | 1 + 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py b/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py index c8cdf7aa02..3a3f5fb522 100644 --- a/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py +++ b/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py @@ -5,7 +5,7 @@ from bimtester.util import assert_elements from bimtester.lang import _ -@step("all {ifc_class} elements have an {aproperty} property in the {pset} pset") +@step("All {ifc_class} elements have an {aproperty} property in the {pset} pset") def step_impl(context, ifc_class, aproperty, pset): eleclass_has_property_in_pset( context, @@ -21,31 +21,42 @@ def step_impl(context, ifc_class, aproperty, pset): use_step_matcher("re") -@step(r"all (?P.*) elements have an? (?P.*\..*) property") +@step(r"All (?P.*) elements have an? (?P.*\..*) property") def step_impl(context, ifc_class, property_path): - pset_name, property_name = property_path.split(".") - elements = IfcStore.file.by_type(ifc_class) - for element in elements: - if not IfcStore.file.get_property(element, pset_name, property_name): - assert False + import re + pset, aproperty = property_path.split(".") + eleclass_has_property_in_pset( + context, + ifc_class, + aproperty, + pset + ) -@step( - r'all (?P.*) elements have an? (?P.*\..*) property value matching the pattern "(?P.*)"' +@step(r'All (?P.*) elements have an? (?P.*\..*) property value matching the pattern "(?P.*)"' ) def step_impl(context, ifc_class, property_path, pattern): import re + from ifcopenshell.util.element import get_psets pset_name, property_name = property_path.split(".") elements = IfcStore.file.by_type(ifc_class) for element in elements: - prop = IfcStore.file.get_property(element, pset_name, property_name) - if not prop: + + psets = get_psets(element) + + if not pset_name in psets: + assert False + + pset = psets[pset_name] + if not property_name in pset: + assert False + + prop = pset[property_name] + # get_psets returns just strings + + if not re.search(pattern, prop): assert False - # For now, we only check single values - if prop.is_a("IfcPropertySingleValue"): - if not (prop.NominalValue and re.search(pattern, prop.NominalValue.wrappedValue)): - assert False def eleclass_has_property_in_pset( diff --git a/src/ifcbimtester/bimtester/reports.py b/src/ifcbimtester/bimtester/reports.py index 5a6683df0d..c76cb9b26c 100644 --- a/src/ifcbimtester/bimtester/reports.py +++ b/src/ifcbimtester/bimtester/reports.py @@ -2,6 +2,7 @@ import datetime import json import os import pystache +import sys from bimtester.lang import _ From b6856109007de8c74fb5d7f21bdaa5559f8b4140 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jul 2021 18:06:57 +1000 Subject: [PATCH 074/168] Fix #1599. Bug where removing the last object in a container would have an error. --- .../api/spatial/remove_container.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/spatial/remove_container.py b/src/ifcopenshell-python/ifcopenshell/api/spatial/remove_container.py index 57a5399980..88a561cc58 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/spatial/remove_container.py +++ b/src/ifcopenshell-python/ifcopenshell/api/spatial/remove_container.py @@ -11,12 +11,13 @@ class Usecase: def execute(self): contained_in_structure = self.settings["product"].ContainedInStructure + if not contained_in_structure: + return - if contained_in_structure: - related_elements = list(contained_in_structure[0].RelatedElements) - related_elements.remove(self.settings["product"]) - if related_elements: - contained_in_structure[0].RelatedElements = related_elements - ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": contained_in_structure[0]}) - else: - self.file.remove(contained_in_structure) + related_elements = list(contained_in_structure[0].RelatedElements) + related_elements.remove(self.settings["product"]) + if related_elements: + contained_in_structure[0].RelatedElements = related_elements + ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": contained_in_structure[0]}) + else: + self.file.remove(contained_in_structure[0]) From 0596e2000c1c0b6f8e0b13d5d1f51a759b79ef00 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jul 2021 18:20:47 +1000 Subject: [PATCH 075/168] New debug utility to purge all Blender IFC links. See #1599. --- .../blenderbim/bim/module/debug/__init__.py | 1 + .../blenderbim/bim/module/debug/operator.py | 34 ++++++++++++++----- .../blenderbim/bim/module/debug/ui.py | 3 ++ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/debug/__init__.py b/src/blenderbim/blenderbim/bim/module/debug/__init__.py index 4522ae260a..b5d7474567 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/debug/__init__.py @@ -3,6 +3,7 @@ from . import ui, prop, operator classes = ( operator.PrintIfcFile, + operator.PurgeIfcLinks, operator.PrintObjectPlacement, operator.ValidateIfcFile, operator.ProfileImportIFC, diff --git a/src/blenderbim/blenderbim/bim/module/debug/operator.py b/src/blenderbim/blenderbim/bim/module/debug/operator.py index a4d2d18a91..c69bc8da50 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/operator.py +++ b/src/blenderbim/blenderbim/bim/module/debug/operator.py @@ -2,6 +2,8 @@ import bpy import logging import ifcopenshell import ifcopenshell.util.placement +import ifcopenshell.util.representation +import blenderbim.bim.handler import blenderbim.bim.import_ifc as import_ifc from blenderbim.bim.ifc import IfcStore @@ -15,6 +17,24 @@ class PrintIfcFile(bpy.types.Operator): return {"FINISHED"} +class PurgeIfcLinks(bpy.types.Operator): + bl_idname = "bim.purge_ifc_links" + bl_label = "Purge IFC Links" + + def execute(self, context): + for obj in bpy.data.objects: + if obj.type in {"MESH", "EMPTY"}: + obj.BIMObjectProperties.ifc_definition_id = 0 + if obj.data: + obj.data.BIMMeshProperties.ifc_definition_id = 0 + for material in bpy.data.materials: + material.BIMMaterialProperties.ifc_style_id = False + bpy.context.scene.BIMProperties.ifc_file = "" + IfcStore.purge() + blenderbim.bim.handler.purge_module_data() + return {"FINISHED"} + + class ValidateIfcFile(bpy.types.Operator): bl_idname = "bim.validate_ifc_file" bl_label = "Validate IFC File" @@ -37,11 +57,9 @@ class ProfileImportIFC(bpy.types.Operator): import pstats # For Windows - filepath = bpy.context.scene.BIMProperties.ifc_file.replace('\\', '\\\\') + filepath = bpy.context.scene.BIMProperties.ifc_file.replace("\\", "\\\\") - cProfile.run( - f"import bpy; bpy.ops.import_ifc.bim(filepath='{filepath}')", "blender.prof" - ) + cProfile.run(f"import bpy; bpy.ops.import_ifc.bim(filepath='{filepath}')", "blender.prof") p = pstats.Stats("blender.prof") p.sort_stats("cumulative").print_stats(50) return {"FINISHED"} @@ -57,18 +75,18 @@ class CreateAllShapes(bpy.types.Operator): total = len(elements) settings = ifcopenshell.geom.settings() failures = [] - excludes = () # For the developer to debug with + excludes = () # For the developer to debug with for i, element in enumerate(elements): if element.GlobalId in excludes: continue - print(f'{i}/{total}:', element) + print(f"{i}/{total}:", element) try: shape = ifcopenshell.geom.create_shape(settings, element) print("Success", len(shape.geometry.verts), len(shape.geometry.edges), len(shape.geometry.faces)) except: failures.append(element) - print('***** FAILURE *****') - print('Failures:') + print("***** FAILURE *****") + print("Failures:") for failure in failures: print(failure) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/debug/ui.py b/src/blenderbim/blenderbim/bim/module/debug/ui.py index b91212c283..a7cd696c83 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/ui.py +++ b/src/blenderbim/blenderbim/bim/module/debug/ui.py @@ -23,6 +23,9 @@ class BIM_PT_debug(Panel): row = layout.row() row.operator("bim.print_ifc_file") + row = layout.row() + row.operator("bim.purge_ifc_links") + row = layout.row() row.operator("bim.create_all_shapes") From d88c4fd37708e1d755cfa3c281ac32c0f205c2b1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jul 2021 18:43:20 +1000 Subject: [PATCH 076/168] Fix #1597. Prevent mixing objects on project creation. --- .../blenderbim/bim/module/project/operator.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index 9cf97be604..24ced30679 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -36,10 +36,10 @@ class CreateProject(bpy.types.Operator): bpy.ops.bim.add_person() bpy.ops.bim.add_organisation() - project = bpy.data.objects.new("My Project", None) - site = bpy.data.objects.new("My Site", None) - building = bpy.data.objects.new("My Building", None) - building_storey = bpy.data.objects.new("Ground Floor", None) + project = bpy.data.objects.new(self.get_name("IfcProject", "My Project"), None) + site = bpy.data.objects.new(self.get_name("IfcSite", "My Site"), None) + building = bpy.data.objects.new(self.get_name("IfcBuilding", "My Building"), None) + building_storey = bpy.data.objects.new(self.get_name("IfcBuildingStorey", "My Storey"), None) bpy.ops.bim.assign_class(obj=project.name, ifc_class="IfcProject") bpy.ops.bim.assign_unit() @@ -62,6 +62,14 @@ class CreateProject(bpy.types.Operator): return {"FINISHED"} + def get_name(self, ifc_class, name): + if not bpy.data.objects.get(f"{ifc_class}/{name}"): + return name + i = 2 + while bpy.data.objects.get(f"{ifc_class}/{name} {i}"): + i += 1 + return f"{name} {i}" + def rollback(self, data): IfcStore.file = None From 10b6253a366a3d5469e3e4b2d9e4713f33390873 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jul 2021 19:55:18 +1000 Subject: [PATCH 077/168] Fix #1585. Materials are added as a potential if you assign it as an object material too, for convenience. --- src/blenderbim/blenderbim/bim/import_ifc.py | 8 ++- .../bim/module/material/operator.py | 53 ++++++++++++++++--- 2 files changed, 53 insertions(+), 8 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 19b7922b49..673c3ba81f 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -54,11 +54,11 @@ class MaterialCreator: if not self.mesh or self.mesh.name in self.parsed_meshes: return self.parsed_meshes.add(self.mesh.name) - self.add_default_material_surface_style(element) + self.add_default_material(element) if self.parse_representations(element): self.assign_material_slots_to_faces() - def add_default_material_surface_style(self, element): + def add_default_material(self, element): element_material = ifcopenshell.util.element.get_material(element) if not element_material: return @@ -71,6 +71,10 @@ class MaterialCreator: if surface_style: self.mesh.materials.append(self.styles[surface_style[0].id()]) return + # For authoring convenience, we choose to assign a material, even if it has no surface style. See #1585. + for material in [m for m in self.ifc_importer.file.traverse(element_material) if m.is_a("IfcMaterial")]: + self.mesh.materials.append(self.materials[material.id()]) + return def load_existing_materials(self): for material in bpy.data.materials: diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index 3c70e9a5ca..eac898b6e5 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -1,6 +1,7 @@ import bpy import json import ifcopenshell.api +import ifcopenshell.util.element import ifcopenshell.util.attribute import ifcopenshell.util.representation import blenderbim.bim.helper @@ -54,14 +55,19 @@ class AddMaterial(bpy.types.Operator): self.file = IfcStore.get_file() result = ifcopenshell.api.run("material.add_material", self.file, **{"name": obj.name}) obj.BIMObjectProperties.ifc_definition_id = result.id() + IfcStore.link_element(result, obj) if obj.BIMMaterialProperties.ifc_style_id: context = ifcopenshell.util.representation.get_context(self.file, "Model", "Body", "MODEL_VIEW") if context: - ifcopenshell.api.run("style.assign_material_style", self.file, **{ - "material": result, - "style": self.file.by_id(obj.BIMMaterialProperties.ifc_style_id), - "context": context, - }) + ifcopenshell.api.run( + "style.assign_material_style", + self.file, + **{ + "material": result, + "style": self.file.by_id(obj.BIMMaterialProperties.ifc_style_id), + "context": context, + }, + ) Data.load(IfcStore.get_file()) material_prop_purge() return {"FINISHED"} @@ -103,19 +109,37 @@ class AssignMaterial(bpy.types.Operator): obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object material_type = self.material_type or obj.BIMObjectMaterialProperties.material_type self.file = IfcStore.get_file() + element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) ifcopenshell.api.run( "material.assign_material", self.file, **{ - "product": self.file.by_id(obj.BIMObjectProperties.ifc_definition_id), + "product": element, "type": material_type, "material": self.file.by_id(int(obj.BIMObjectMaterialProperties.material)), }, ) Data.load(IfcStore.get_file()) Data.load(IfcStore.get_file(), obj.BIMObjectProperties.ifc_definition_id) + self.set_default_material(obj, element) return {"FINISHED"} + def set_default_material(self, obj, element): + element_material = ifcopenshell.util.element.get_material(element) + material = [m for m in self.file.traverse(element_material) if m.is_a("IfcMaterial")] + if not material: + return + + object_material_ids = [ + om.BIMObjectProperties.ifc_definition_id + for om in obj.data.materials + if om is not None and om.BIMObjectProperties.ifc_definition_id + ] + + if material[0].id() in object_material_ids: + return + obj.data.materials.append(IfcStore.get_element(material[0].id())) + class UnassignMaterial(bpy.types.Operator): bl_idname = "bim.unassign_material" @@ -523,8 +547,25 @@ class EditAssignedMaterial(bpy.types.Operator): elif material_set.is_a("IfcMaterialProfileSet"): Data.load_profiles() bpy.ops.bim.disable_editing_assigned_material(obj=obj.name) + self.set_default_material(obj, self.file.by_id(obj.BIMObjectProperties.ifc_definition_id)) return {"FINISHED"} + def set_default_material(self, obj, element): + element_material = ifcopenshell.util.element.get_material(element) + material = [m for m in self.file.traverse(element_material) if m.is_a("IfcMaterial")] + if not material: + return + + object_material_ids = [ + om.BIMObjectProperties.ifc_definition_id + for om in obj.data.materials + if om is not None and om.BIMObjectProperties.ifc_definition_id + ] + + if material[0].id() in object_material_ids: + return + obj.data.materials.append(IfcStore.get_element(material[0].id())) + class EnableEditingMaterialSetItem(bpy.types.Operator): bl_idname = "bim.enable_editing_material_set_item" From 2537349ec2c17ea2441d5f4b33775994ef7843ec Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 28 Jul 2021 21:01:09 +1000 Subject: [PATCH 078/168] Object style colours are now auto synchronised upon export. See #1585. --- src/blenderbim/blenderbim/bim/export_ifc.py | 9 ++++++--- src/blenderbim/blenderbim/bim/handler.py | 6 ++++++ src/blenderbim/blenderbim/bim/ifc.py | 18 ++++++++++++++++-- .../blenderbim/bim/module/material/operator.py | 1 - .../blenderbim/bim/module/style/operator.py | 2 +- .../blenderbim/bim/module/style/ui.py | 11 +++++------ .../api/style/edit_style_colours.py | 4 ++-- 7 files changed, 36 insertions(+), 15 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/export_ifc.py b/src/blenderbim/blenderbim/bim/export_ifc.py index 0732cbbbb7..805e126158 100644 --- a/src/blenderbim/blenderbim/bim/export_ifc.py +++ b/src/blenderbim/blenderbim/bim/export_ifc.py @@ -67,9 +67,9 @@ class IfcExporter: to_delete = [] for ifc_definition_id, obj in IfcStore.id_map.items(): + if isinstance(obj, bpy.types.Material): + continue try: - if isinstance(obj, bpy.types.Material): - continue self.sync_object_placement(obj) self.sync_object_container(ifc_definition_id, obj) except ReferenceError: @@ -89,7 +89,10 @@ class IfcExporter: if not obj: continue try: - bpy.ops.bim.update_representation(obj=obj.name) + if isinstance(obj, bpy.types.Material): + bpy.ops.bim.update_style_colours(material=obj.name) + else: + bpy.ops.bim.update_representation(obj=obj.name) except ReferenceError: pass # The object is likely deleted IfcStore.edited_objs.clear() diff --git a/src/blenderbim/blenderbim/bim/handler.py b/src/blenderbim/blenderbim/bim/handler.py index bb7212491c..063f67d194 100644 --- a/src/blenderbim/blenderbim/bim/handler.py +++ b/src/blenderbim/blenderbim/bim/handler.py @@ -35,6 +35,7 @@ def mode_callback(obj, data): def name_callback(obj, data): + # TODO Do we still need this, now that we are monitoring the undo redo objects? try: obj.name except: @@ -76,6 +77,11 @@ def name_callback(obj, data): AttributeData.load(IfcStore.get_file(), obj.BIMObjectProperties.ifc_definition_id) +def color_callback(obj, data): + if obj.BIMMaterialProperties.ifc_style_id: + IfcStore.edited_objs.add(obj) + + def active_object_callback(): obj = bpy.context.active_object for obj in bpy.context.selected_objects: diff --git a/src/blenderbim/blenderbim/bim/ifc.py b/src/blenderbim/blenderbim/bim/ifc.py index 10ef0a53f8..6390ac630f 100644 --- a/src/blenderbim/blenderbim/bim/ifc.py +++ b/src/blenderbim/blenderbim/bim/ifc.py @@ -114,9 +114,19 @@ class IfcStore: IfcStore.id_map[element.id()] = obj if hasattr(element, "GlobalId"): IfcStore.guid_map[element.GlobalId] = obj - obj.BIMObjectProperties.ifc_definition_id = element.id() - blenderbim.bim.handler.subscribe_to(obj, "mode", blenderbim.bim.handler.mode_callback) + + if element.is_a("IfcSurfaceStyle"): + obj.BIMMaterialProperties.ifc_style_id = element.id() + else: + obj.BIMObjectProperties.ifc_definition_id = element.id() + blenderbim.bim.handler.subscribe_to(obj, "name", blenderbim.bim.handler.name_callback) + + if isinstance(obj, bpy.types.Material): + blenderbim.bim.handler.subscribe_to(obj, "diffuse_color", blenderbim.bim.handler.color_callback) + elif isinstance(obj, bpy.types.Object): + blenderbim.bim.handler.subscribe_to(obj, "mode", blenderbim.bim.handler.mode_callback) + for listener in IfcStore.element_listeners: listener(element, obj) @@ -140,6 +150,10 @@ class IfcStore: IfcStore.guid_map[data["guid"]] = obj blenderbim.bim.handler.subscribe_to(obj, "mode", blenderbim.bim.handler.mode_callback) blenderbim.bim.handler.subscribe_to(obj, "name", blenderbim.bim.handler.name_callback) + if isinstance(obj, bpy.types.Material): + blenderbim.bim.handler.subscribe_to(obj, "diffuse_color", blenderbim.bim.handler.color_callback) + # TODO Listeners are not re-registered. Does this cause nasty problems to debug later on? + # TODO We're handling id_map and guid_map, but what about edited_objs? This might cause big problems. @staticmethod def unlink_element(element=None, obj=None): diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index eac898b6e5..45d5a2f21c 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -54,7 +54,6 @@ class AddMaterial(bpy.types.Operator): obj = bpy.data.materials.get(self.obj) if self.obj else bpy.context.active_object.active_material self.file = IfcStore.get_file() result = ifcopenshell.api.run("material.add_material", self.file, **{"name": obj.name}) - obj.BIMObjectProperties.ifc_definition_id = result.id() IfcStore.link_element(result, obj) if obj.BIMMaterialProperties.ifc_style_id: context = ifcopenshell.util.representation.get_context(self.file, "Model", "Body", "MODEL_VIEW") diff --git a/src/blenderbim/blenderbim/bim/module/style/operator.py b/src/blenderbim/blenderbim/bim/module/style/operator.py index 8cb56ada3c..f85f4e05f5 100644 --- a/src/blenderbim/blenderbim/bim/module/style/operator.py +++ b/src/blenderbim/blenderbim/bim/module/style/operator.py @@ -74,7 +74,7 @@ class AddStyle(bpy.types.Operator): settings["name"] = material.name settings["external_definition"] = None # TODO: Implement. See #1222 style = ifcopenshell.api.run("style.add_style", self.file, **settings) - material.BIMMaterialProperties.ifc_style_id = style.id() + IfcStore.link_element(style, material) if material.BIMObjectProperties.ifc_definition_id: context = ifcopenshell.util.representation.get_context(self.file, "Model", "Body", "MODEL_VIEW") if context: diff --git a/src/blenderbim/blenderbim/bim/module/style/ui.py b/src/blenderbim/blenderbim/bim/module/style/ui.py index 325e2c6178..089db774cf 100644 --- a/src/blenderbim/blenderbim/bim/module/style/ui.py +++ b/src/blenderbim/blenderbim/bim/module/style/ui.py @@ -20,14 +20,13 @@ class BIM_PT_style(Panel): ) def draw(self, context): - props = context.active_object.active_material.BIMMaterialProperties + material = context.active_object.active_material + props = material.BIMMaterialProperties row = self.layout.row(align=True) if props.ifc_style_id: - row.operator("bim.update_style_colours", icon="GREASEPENCIL") - op = row.operator("bim.unlink_style", icon="UNLINKED", text="") - op.material = context.active_object.active_material.name - op = row.operator("bim.remove_style", icon="X", text="") - op.material = context.active_object.active_material.name + row.operator("bim.update_style_colours", icon="GREASEPENCIL").material = material.name + row.operator("bim.unlink_style", icon="UNLINKED", text="").material = material.name + row.operator("bim.remove_style", icon="X", text="").material = material.name else: row.operator("bim.add_style", icon="ADD") diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/edit_style_colours.py b/src/ifcopenshell-python/ifcopenshell/api/style/edit_style_colours.py index e5083ff97f..abb1e9a4ea 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/edit_style_colours.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/edit_style_colours.py @@ -23,7 +23,7 @@ class Usecase: self.update_colour_rgb(element.SurfaceColour, self.settings["surface_colour"]) else: element.SurfaceColour = self.create_colour_rgb(self.settings["surface_colour"]) - element.Transparency = (self.settings["transparency"] - 1) * -1 + element.Transparency = self.settings["transparency"] if element.is_a("IfcSurfaceStyleRendering"): if element.DiffuseColour: self.update_colour_rgb(element.DiffuseColour, self.settings["diffuse_colour"]) @@ -44,7 +44,7 @@ class Usecase: def create_surface_style_rendering(self): return self.file.create_entity("IfcSurfaceStyleRendering", **{ "SurfaceColour": self.create_colour_rgb(self.settings["surface_colour"]), - "Transparency": (self.settings["transparency"] - 1) * -1, + "Transparency": self.settings["transparency"], "ReflectanceMethod": "NOTDEFINED", "DiffuseColour": self.create_colour_rgb(self.settings["diffuse_colour"]) }) From 99f72a845129ead99b2bdbc53bd51d44906370f0 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Wed, 28 Jul 2021 13:40:23 +0200 Subject: [PATCH 079/168] Fix Assign Container operator loses active object (#1601) * Fix Assign Container operator loses active object * Fix bad indentation for restoring active object --- src/blenderbim/blenderbim/bim/module/spatial/operator.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/spatial/operator.py b/src/blenderbim/blenderbim/bim/module/spatial/operator.py index 8441c197e6..0d77ae5f51 100644 --- a/src/blenderbim/blenderbim/bim/module/spatial/operator.py +++ b/src/blenderbim/blenderbim/bim/module/spatial/operator.py @@ -17,6 +17,9 @@ class AssignContainer(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): + # The active object pointer is lost when the object is unlinked from all collections in the view layer + # We need to store it first, then restore it at the end + active_object = context.active_object self.file = IfcStore.get_file() related_elements = ( [bpy.data.objects.get(self.related_element)] if self.related_element else bpy.context.selected_objects @@ -57,6 +60,8 @@ class AssignContainer(bpy.types.Operator): for collection in related_element.users_collection: collection.objects.unlink(related_element) relating_collection.objects.link(related_element) + # Restore the active object : + context.view_layer.objects.active = active_object return {"FINISHED"} def remove_collection(self, parent, child): From d1e51fb05bfb5fad96a695e8581928eadfa246c9 Mon Sep 17 00:00:00 2001 From: bosonprojets Date: Wed, 28 Jul 2021 15:27:51 +0100 Subject: [PATCH 080/168] Fix BlenderBIM bug class assignement when PredefinedType is set as USERDEFINED --- .../blenderbim/bim/module/root/operator.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index 5ff17caf5a..1bf274fe86 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -99,10 +99,6 @@ class AssignClass(bpy.types.Operator): objects = [bpy.data.objects.get(self.obj)] if self.obj else bpy.context.selected_objects self.file = IfcStore.get_file() self.declaration = IfcStore.get_schema().declaration_by_name(self.ifc_class) - if self.predefined_type == "USERDEFINED": - self.predefined_type = self.ifc_userdefined_type - elif self.predefined_type == "": - predefined_type = None for obj in objects: self.assign_class(context, obj) return {"FINISHED"} @@ -121,7 +117,15 @@ class AssignClass(bpy.types.Operator): ) obj.name = "{}/{}".format(product.is_a(), obj.name) IfcStore.link_element(product, obj) - + if self.predefined_type == "USERDEFINED": + ifcopenshell.api.run( + "attribute.edit_attributes", + self.file, + **{ + "product": self.file.by_id(obj.BIMObjectProperties.ifc_definition_id), + "attributes": {"ObjectType": self.userdefined_type}, + }, + ) if self.should_add_representation: bpy.ops.bim.add_representation( obj=obj.name, context_id=self.context_id, ifc_representation_class=self.ifc_representation_class From c715f419729e67ad578efc8362df34f32080b901 Mon Sep 17 00:00:00 2001 From: bosonprojets Date: Wed, 28 Jul 2021 23:37:06 +0100 Subject: [PATCH 081/168] Fix BlenderBIM bug missing module reference for Pie Menu shortcuts --- src/blenderbim/blenderbim/bim/module/model/pie.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/pie.py b/src/blenderbim/blenderbim/bim/module/model/pie.py index 94be5224e4..d2f2f2f296 100644 --- a/src/blenderbim/blenderbim/bim/module/model/pie.py +++ b/src/blenderbim/blenderbim/bim/module/model/pie.py @@ -1,5 +1,5 @@ import bpy - +from blenderbim.bim.ifc import IfcStore class OpenPieClass(bpy.types.Operator): bl_idname = "bim.open_pie_class" From cdf18e9f20f342f92e1369f0ded0216a438d4070 Mon Sep 17 00:00:00 2001 From: bosonprojets Date: Thu, 29 Jul 2021 00:24:38 +0100 Subject: [PATCH 082/168] Revert "Fix BlenderBIM bug class assignement when PredefinedType is set as USERDEFINED" This reverts commit d1e51fb05bfb5fad96a695e8581928eadfa246c9. --- .../blenderbim/bim/module/root/operator.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index 1bf274fe86..5ff17caf5a 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -99,6 +99,10 @@ class AssignClass(bpy.types.Operator): objects = [bpy.data.objects.get(self.obj)] if self.obj else bpy.context.selected_objects self.file = IfcStore.get_file() self.declaration = IfcStore.get_schema().declaration_by_name(self.ifc_class) + if self.predefined_type == "USERDEFINED": + self.predefined_type = self.ifc_userdefined_type + elif self.predefined_type == "": + predefined_type = None for obj in objects: self.assign_class(context, obj) return {"FINISHED"} @@ -117,15 +121,7 @@ class AssignClass(bpy.types.Operator): ) obj.name = "{}/{}".format(product.is_a(), obj.name) IfcStore.link_element(product, obj) - if self.predefined_type == "USERDEFINED": - ifcopenshell.api.run( - "attribute.edit_attributes", - self.file, - **{ - "product": self.file.by_id(obj.BIMObjectProperties.ifc_definition_id), - "attributes": {"ObjectType": self.userdefined_type}, - }, - ) + if self.should_add_representation: bpy.ops.bim.add_representation( obj=obj.name, context_id=self.context_id, ifc_representation_class=self.ifc_representation_class From c257afbd1ca51791d489e9810d7e74b36cac6bef Mon Sep 17 00:00:00 2001 From: bosonprojets Date: Thu, 29 Jul 2021 00:28:04 +0100 Subject: [PATCH 083/168] Fix BlenderBIM bug Class assignement for predefined_type attribue --- src/blenderbim/blenderbim/bim/module/root/operator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index 5ff17caf5a..91c7816f36 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -100,7 +100,7 @@ class AssignClass(bpy.types.Operator): self.file = IfcStore.get_file() self.declaration = IfcStore.get_schema().declaration_by_name(self.ifc_class) if self.predefined_type == "USERDEFINED": - self.predefined_type = self.ifc_userdefined_type + self.predefined_type = self.userdefined_type elif self.predefined_type == "": predefined_type = None for obj in objects: From 6bf692b44da80cb76b306243c04c1ab2e08c480b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 29 Jul 2021 16:15:31 +1000 Subject: [PATCH 084/168] Fix #1401. Modified custom psets are now immediately available without needing to restart Blender. --- .../blenderbim/bim/module/pset/operator.py | 1 + .../blenderbim/bim/module/pset/prop.py | 24 ++++++++++--------- .../bim/module/pset_template/operator.py | 4 ++++ src/blenderbim/blenderbim/bim/schema.py | 4 ++++ .../ifcopenshell/api/pset/edit_pset.py | 11 +++++---- 5 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/pset/operator.py b/src/blenderbim/blenderbim/bim/module/pset/operator.py index ea490c6617..1ff24e51f0 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/operator.py +++ b/src/blenderbim/blenderbim/bim/module/pset/operator.py @@ -195,6 +195,7 @@ class EditPset(bpy.types.Operator): "pset": self.file.by_id(pset_id), "name": props.active_pset_name, "properties": properties, + "pset_template": blenderbim.bim.schema.ifc.psetqto.get_by_name(props.active_pset_name), }, ) else: diff --git a/src/blenderbim/blenderbim/bim/module/pset/prop.py b/src/blenderbim/blenderbim/bim/module/pset/prop.py index d4dcbb75c9..659ec986e9 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/prop.py +++ b/src/blenderbim/blenderbim/bim/module/pset/prop.py @@ -1,7 +1,8 @@ import bpy +import blenderbim.bim.schema from blenderbim.bim.prop import Attribute from ifcopenshell.api.pset.data import Data -import blenderbim.bim.schema +from blenderbim.bim.ifc import IfcStore from bpy.types import PropertyGroup from bpy.props import ( PointerProperty, @@ -29,16 +30,17 @@ def purge(): def getPsetNames(self, context): global psetnames obj = context.active_object - if "/" in obj.name: - ifc_class = obj.name.split("/")[0] - if ifc_class not in psetnames: - psets = blenderbim.bim.schema.ifc.psetqto.get_applicable(ifc_class, pset_only=True) - psetnames[ifc_class] = [(p.Name, p.Name, "") for p in psets] - assigned_names = [ - Data.psets[p]["Name"] for p in Data.products[obj.BIMObjectProperties.ifc_definition_id]["psets"] - ] - return [p for p in psetnames[ifc_class] if p[0] not in assigned_names] - return [] + if not obj.BIMObjectProperties.ifc_definition_id: + return [] + element = IfcStore.get_file().by_id(obj.BIMObjectProperties.ifc_definition_id) + ifc_class = element.is_a() + if ifc_class not in psetnames: + psets = blenderbim.bim.schema.ifc.psetqto.get_applicable(ifc_class, pset_only=True) + psetnames[ifc_class] = [(p.Name, p.Name, "") for p in psets] + assigned_names = [ + Data.psets[p]["Name"] for p in Data.products[obj.BIMObjectProperties.ifc_definition_id]["psets"] + ] + return [p for p in psetnames[ifc_class] if p[0] not in assigned_names] def getMaterialPsetNames(self, context): diff --git a/src/blenderbim/blenderbim/bim/module/pset_template/operator.py b/src/blenderbim/blenderbim/bim/module/pset_template/operator.py index 13bf59933d..452470240c 100644 --- a/src/blenderbim/blenderbim/bim/module/pset_template/operator.py +++ b/src/blenderbim/blenderbim/bim/module/pset_template/operator.py @@ -1,6 +1,8 @@ import bpy import ifcopenshell import ifcopenshell.api +import blenderbim.bim.schema +import blenderbim.bim.handler from blenderbim.bim.module.pset_template.prop import updatePsetTemplateFiles, updatePsetTemplates from ifcopenshell.api.pset_template.data import Data from blenderbim.bim.ifc import IfcStore @@ -165,6 +167,8 @@ class SavePsetTemplateFile(bpy.types.Operator): def execute(self, context): IfcStore.pset_template_file.write(IfcStore.pset_template_path) + blenderbim.bim.handler.purge_module_data() + blenderbim.bim.schema.reload() return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/schema.py b/src/blenderbim/blenderbim/bim/schema.py index 7fa2789660..6fb784f561 100644 --- a/src/blenderbim/blenderbim/bim/schema.py +++ b/src/blenderbim/blenderbim/bim/schema.py @@ -77,3 +77,7 @@ class IfcSchema: ifc = IfcSchema() + +def reload(): + global ifc + ifc = IfcSchema() diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py index 7507708917..dc4d2f6c35 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py @@ -5,7 +5,7 @@ import ifcopenshell.util.pset class Usecase: def __init__(self, file, **settings): self.file = file - self.settings = {"pset": None, "name": None, "properties": {}} + self.settings = {"pset": None, "name": None, "properties": {}, "pset_template": None} for key, value in settings.items(): self.settings[key] = value @@ -21,9 +21,12 @@ class Usecase: self.settings["pset"].Name = self.settings["name"] def load_pset_template(self): - # TODO: add IFC2X3 PsetQto template support - self.psetqto = ifcopenshell.util.pset.get_template("IFC4") - self.pset_template = self.psetqto.get_by_name(self.settings["pset"].Name) + if self.settings["pset_template"]: + self.pset_template = self.settings["pset_template"] + else: + # TODO: add IFC2X3 PsetQto template support + self.psetqto = ifcopenshell.util.pset.get_template("IFC4") + self.pset_template = self.psetqto.get_by_name(self.settings["pset"].Name) def update_existing_properties(self): for prop in self.get_properties(): From 110daf4ca7df6729cc9e0c72c33984d5f8be21c3 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 29 Jul 2021 17:03:06 +1000 Subject: [PATCH 085/168] Fix #1592. Material name changes are now auto synced with style names. --- src/blenderbim/blenderbim/bim/handler.py | 2 ++ .../bim/module/attribute/operator.py | 6 ----- .../blenderbim/bim/module/model/handler.py | 6 ++++- .../blenderbim/bim/module/model/root.py | 22 +++++++++++++++++++ 4 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 src/blenderbim/blenderbim/bim/module/model/root.py diff --git a/src/blenderbim/blenderbim/bim/handler.py b/src/blenderbim/blenderbim/bim/handler.py index 063f67d194..7c02de271f 100644 --- a/src/blenderbim/blenderbim/bim/handler.py +++ b/src/blenderbim/blenderbim/bim/handler.py @@ -6,6 +6,7 @@ from bpy.app.handlers import persistent from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.attribute.data import Data as AttributeData from ifcopenshell.api.material.data import Data as MaterialData +from ifcopenshell.api.style.data import Data as StyleData from ifcopenshell.api.type.data import Data as TypeData @@ -51,6 +52,7 @@ def name_callback(obj, data): MaterialData.load_materials() if obj.BIMMaterialProperties.ifc_style_id: IfcStore.get_file().by_id(obj.BIMMaterialProperties.ifc_style_id).Name = obj.name + StyleData.load(IfcStore.get_file(), obj.BIMMaterialProperties.ifc_style_id) return if not obj.BIMObjectProperties.ifc_definition_id or "/" not in obj.name: diff --git a/src/blenderbim/blenderbim/bim/module/attribute/operator.py b/src/blenderbim/blenderbim/bim/module/attribute/operator.py index 8d0432da77..24989af37f 100644 --- a/src/blenderbim/blenderbim/bim/module/attribute/operator.py +++ b/src/blenderbim/blenderbim/bim/module/attribute/operator.py @@ -104,12 +104,6 @@ class EditAttributes(bpy.types.Operator): ifcopenshell.api.run( "attribute.edit_attributes", self.file, **{"product": product, "attributes": attributes} ) - if "Name" in attributes: - new_name = "{}/{}".format(product.is_a(), product.Name or "Unnamed") - collection = bpy.data.collections.get(obj.name) - if collection: - collection.name = new_name - obj.name = new_name Data.load(IfcStore.get_file(), oprops.ifc_definition_id) bpy.ops.bim.disable_editing_attributes(obj=obj.name, obj_type=self.obj_type) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/model/handler.py b/src/blenderbim/blenderbim/bim/module/model/handler.py index 7dc1fd8e43..559a5ad169 100644 --- a/src/blenderbim/blenderbim/bim/module/model/handler.py +++ b/src/blenderbim/blenderbim/bim/module/model/handler.py @@ -1,13 +1,17 @@ import bpy import ifcopenshell import ifcopenshell.api -from blenderbim.bim.module.model import product, wall, slab, profile, opening +from blenderbim.bim.module.model import root, product, wall, slab, profile, opening from blenderbim.bim.ifc import IfcStore from bpy.app.handlers import persistent @persistent def load_post(*args): + ifcopenshell.api.add_pre_listener( + "attribute.edit_attributes", "BlenderBIM.Root.SyncName", root.sync_name + ) + ifcopenshell.api.add_post_listener( "geometry.add_representation", "BlenderBIM.Product.GenerateBox", product.generate_box ) diff --git a/src/blenderbim/blenderbim/bim/module/model/root.py b/src/blenderbim/blenderbim/bim/module/model/root.py new file mode 100644 index 0000000000..729d477b94 --- /dev/null +++ b/src/blenderbim/blenderbim/bim/module/model/root.py @@ -0,0 +1,22 @@ +import bpy +from blenderbim.bim.ifc import IfcStore +from ifcopenshell.api.style.data import Data as StyleData + + +def sync_name(usecase_path, ifc_file, settings): + if "Name" not in settings["attributes"]: + return + obj = IfcStore.get_element(settings["product"].id()) + if not obj: + return + if isinstance(obj, bpy.types.Object): + new_name = "{}/{}".format(settings["product"].is_a(), settings["attributes"]["Name"] or "Unnamed") + elif isinstance(obj, bpy.types.Material): + new_name = settings["attributes"]["Name"] or "Unnamed" + if obj.BIMMaterialProperties.ifc_style_id: + IfcStore.get_file().by_id(obj.BIMMaterialProperties.ifc_style_id).Name = new_name + StyleData.load(IfcStore.get_file(), obj.BIMMaterialProperties.ifc_style_id) + collection = bpy.data.collections.get(obj.name) + if collection: + collection.name = new_name + obj.name = new_name From e06591bbbdd565cc7e9134141cfdb826ee5db9d0 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Thu, 29 Jul 2021 09:03:53 +0200 Subject: [PATCH 086/168] Prevent linking non-existant or non-ifc file (#1604) --- src/blenderbim/blenderbim/bim/operator.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py index 9c6b5b31f7..1576439c06 100644 --- a/src/blenderbim/blenderbim/bim/operator.py +++ b/src/blenderbim/blenderbim/bim/operator.py @@ -153,7 +153,8 @@ class SelectIfcFile(bpy.types.Operator): filter_glob: bpy.props.StringProperty(default="*.ifc;*.ifczip;*.ifcxml", options={"HIDDEN"}) def execute(self, context): - bpy.context.scene.BIMProperties.ifc_file = self.filepath + if os.path.exists(self.filepath) and "ifc" in os.path.splitext(self.filepath)[1]: + bpy.context.scene.BIMProperties.ifc_file = self.filepath return {"FINISHED"} def invoke(self, context, event): From 7b22f9c85b69eeb9a53e6e5c1a0fe8303f7a896a Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Thu, 29 Jul 2021 12:07:04 +0200 Subject: [PATCH 087/168] BlenderBIM some data_dir / schema_dir workarounds (#1606) * write process.log to a tempdir if data_dir is not writable * Don't include filename returned by data_dir and schema_dir chooser --- src/blenderbim/blenderbim/bim/operator.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py index 1576439c06..01be81b014 100644 --- a/src/blenderbim/blenderbim/bim/operator.py +++ b/src/blenderbim/blenderbim/bim/operator.py @@ -2,6 +2,7 @@ import os import bpy import time import json +import tempfile import logging import webbrowser import ifcopenshell @@ -43,8 +44,11 @@ class ExportIFC(bpy.types.Operator): def _execute(self, context): start = time.time() logger = logging.getLogger("ExportIFC") + path_log = os.path.join(bpy.context.scene.BIMProperties.data_dir, "process.log"), + if not os.access(bpy.context.scene.BIMProperties.data_dir, os.W_OK): + path_log = os.path.join(tempfile.mkdtemp(), "process.log") logging.basicConfig( - filename=os.path.join(context.scene.BIMProperties.data_dir, "process.log"), + filename=path_log, filemode="a", level=logging.DEBUG, ) @@ -105,8 +109,11 @@ class ImportIFC(bpy.types.Operator, ImportHelper): def execute(self, context): start = time.time() logger = logging.getLogger("ImportIFC") + path_log = os.path.join(bpy.context.scene.BIMProperties.data_dir, "process.log"), + if not os.access(bpy.context.scene.BIMProperties.data_dir, os.W_OK): + path_log = os.path.join(tempfile.mkdtemp(), "process.log") logging.basicConfig( - filename=os.path.join(bpy.context.scene.BIMProperties.data_dir, "process.log"), + filename=path_log, filemode="a", level=logging.DEBUG, ) @@ -169,7 +176,7 @@ class SelectDataDir(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.BIMProperties.data_dir = self.filepath + bpy.context.scene.BIMProperties.data_dir = os.path.dirname(self.filepath) return {"FINISHED"} def invoke(self, context, event): @@ -184,7 +191,7 @@ class SelectSchemaDir(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.BIMProperties.schema_dir = self.filepath + bpy.context.scene.BIMProperties.schema_dir = os.path.dirname(self.filepath) return {"FINISHED"} def invoke(self, context, event): From d2e421382bdbea3c7be969e65e2fbf5dd8091a7c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 29 Jul 2021 20:08:44 +1000 Subject: [PATCH 088/168] Minor fix --- src/blenderbim/blenderbim/bim/export_ifc.py | 4 ++-- src/blenderbim/blenderbim/bim/import_ifc.py | 3 ++- src/blenderbim/generate_demo_library.py | 22 ++++++++++++--------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/export_ifc.py b/src/blenderbim/blenderbim/bim/export_ifc.py index 805e126158..4e9f75f83b 100644 --- a/src/blenderbim/blenderbim/bim/export_ifc.py +++ b/src/blenderbim/blenderbim/bim/export_ifc.py @@ -67,9 +67,9 @@ class IfcExporter: to_delete = [] for ifc_definition_id, obj in IfcStore.id_map.items(): - if isinstance(obj, bpy.types.Material): - continue try: + if isinstance(obj, bpy.types.Material): + continue self.sync_object_placement(obj) self.sync_object_container(ifc_definition_id, obj) except ReferenceError: diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 673c3ba81f..4741c5d134 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -594,7 +594,8 @@ class IfcImporter: ) ) checkpoint = time.time() - self.update_progress(((total_created / approx_total_products) * progress_range) + start_progress) + if approx_total_products: + self.update_progress(((total_created / approx_total_products) * progress_range) + start_progress) shape = iterator.get() if shape: product = self.file.by_id(shape.guid) diff --git a/src/blenderbim/generate_demo_library.py b/src/blenderbim/generate_demo_library.py index 3babcd4184..610af81587 100644 --- a/src/blenderbim/generate_demo_library.py +++ b/src/blenderbim/generate_demo_library.py @@ -12,10 +12,14 @@ class LibraryGenerator: ifcopenshell.api.run("unit.assign_unit", self.file, length={"is_metric": True, "raw": "METERS"}) self.material = ifcopenshell.api.run("material.add_material", self.file, name="Unknown") - self.create_wall_type("DEMO50", 0.05) - self.create_wall_type("DEMO100", 0.1) - self.create_wall_type("DEMO200", 0.2) - self.create_wall_type("DEMO300", 0.3) + + self.create_layer_type("IfcWallType", "DEMO50", 0.05) + self.create_layer_type("IfcWallType", "DEMO100", 0.1) + self.create_layer_type("IfcWallType", "DEMO200", 0.2) + self.create_layer_type("IfcWallType", "DEMO300", 0.3) + + self.create_layer_type("IfcSlabType", "DEMO150", 0.2) + self.create_layer_type("IfcSlabType", "DEMO250", 0.3) profile = self.file.create_entity("IfcRectangleProfileDef", ProfileType="AREA", XDim=0.5, YDim=0.6) self.create_profile_type("IfcColumnType", "DEMO1", profile) @@ -60,13 +64,13 @@ class LibraryGenerator: self.file.write("blenderbim-demo-library.ifc") - def create_wall_type(self, name, thickness): - wall = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcWallType", name=name) - ifcopenshell.api.run("material.assign_material", self.file, product=wall, type="IfcMaterialLayerSet") - layer_set = ifcopenshell.util.element.get_material(wall) + def create_layer_type(self, ifc_class, name, thickness): + element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name) + ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialLayerSet") + layer_set = ifcopenshell.util.element.get_material(element) layer = ifcopenshell.api.run("material.add_layer", self.file, layer_set=layer_set, material=self.material) layer.LayerThickness = thickness - ifcopenshell.api.run("project.assign_declaration", self.file, definition=wall, relating_context=self.project) + ifcopenshell.api.run("project.assign_declaration", self.file, definition=element, relating_context=self.project) def create_profile_type(self, ifc_class, name, profile): element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name) From 2af1ebc614392b97a4f194a70f8e2484cabcba46 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Thu, 29 Jul 2021 23:08:17 +0200 Subject: [PATCH 089/168] Use passed context instead of bpy when available (#1607) --- .../bim/module/aggregate/operator.py | 14 +- .../bim/module/attribute/operator.py | 6 +- .../blenderbim/bim/module/augin/operator.py | 12 +- .../blenderbim/bim/module/augin/ui.py | 2 +- .../blenderbim/bim/module/bcf/operator.py | 144 +++++++++--------- .../blenderbim/bim/module/bcf/prop.py | 18 +-- .../blenderbim/bim/module/bcf/ui.py | 8 +- .../bim/module/bimtester/operator.py | 38 ++--- .../blenderbim/bim/module/clash/operator.py | 108 ++++++------- .../bim/module/classification/operator.py | 10 +- .../blenderbim/bim/module/cobie/operator.py | 6 +- .../blenderbim/bim/module/context/operator.py | 6 +- .../blenderbim/bim/module/cost/operator.py | 8 +- .../bim/module/covetool/operator.py | 24 +-- .../blenderbim/bim/module/debug/operator.py | 38 ++--- .../blenderbim/bim/module/debug/ui.py | 2 +- .../blenderbim/bim/module/diff/operator.py | 20 +-- .../bim/module/drawing/annotation.py | 30 ++-- .../blenderbim/bim/module/drawing/operator.py | 26 ++-- .../blenderbim/bim/module/drawing/ui.py | 12 +- .../bim/module/geometry/operator.py | 24 +-- .../blenderbim/bim/module/geometry/ui.py | 2 +- .../bim/module/georeference/operator.py | 8 +- .../blenderbim/bim/module/group/operator.py | 2 +- .../bim/module/material/operator.py | 40 ++--- .../blenderbim/bim/module/model/door.py | 10 +- .../blenderbim/bim/module/model/grid.py | 4 +- .../blenderbim/bim/module/model/product.py | 10 +- .../blenderbim/bim/module/model/slab.py | 2 +- .../blenderbim/bim/module/model/window.py | 10 +- .../blenderbim/bim/module/owner/ui.py | 16 +- .../blenderbim/bim/module/project/operator.py | 12 +- .../blenderbim/bim/module/pset/operator.py | 35 ++--- .../blenderbim/bim/module/qto/helper.py | 6 +- .../blenderbim/bim/module/qto/operator.py | 26 ++-- .../bim/module/resource/operator.py | 4 +- .../blenderbim/bim/module/root/operator.py | 46 +++--- .../blenderbim/bim/module/root/ui.py | 16 +- .../blenderbim/bim/module/search/operator.py | 45 +++--- .../bim/module/sequence/operator.py | 24 +-- .../blenderbim/bim/module/spatial/operator.py | 18 +-- .../bim/module/structural/operator.py | 18 +-- .../blenderbim/bim/module/structural/prop.py | 2 +- .../blenderbim/bim/module/style/operator.py | 12 +- .../blenderbim/bim/module/system/operator.py | 2 +- .../blenderbim/bim/module/type/operator.py | 16 +- .../blenderbim/bim/module/unit/operator.py | 17 ++- .../blenderbim/bim/module/void/operator.py | 10 +- src/blenderbim/blenderbim/bim/operator.py | 119 ++++++++------- src/blenderbim/blenderbim/bim/ui.py | 6 +- 50 files changed, 549 insertions(+), 545 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/aggregate/operator.py b/src/blenderbim/blenderbim/bim/module/aggregate/operator.py index fe85844eb4..b6f49c1568 100644 --- a/src/blenderbim/blenderbim/bim/module/aggregate/operator.py +++ b/src/blenderbim/blenderbim/bim/module/aggregate/operator.py @@ -17,7 +17,7 @@ class AssignObject(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] if self.related_object else context.selected_objects ) relating_object = bpy.data.objects.get(self.relating_object) if not relating_object or not relating_object.BIMObjectProperties.ifc_definition_id: @@ -40,7 +40,7 @@ class AssignObject(bpy.types.Operator): spatial_collection = bpy.data.collections.get(related_object.name) relating_collection = bpy.data.collections.get(relating_object.name) if spatial_collection: - self.remove_collection(bpy.context.scene.collection, spatial_collection) + self.remove_collection(context.scene.collection, spatial_collection) for collection in bpy.data.collections: if collection == relating_collection: if not collection.children.get(spatial_collection.name): @@ -67,8 +67,8 @@ class EnableEditingAggregate(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - bpy.context.active_object.BIMObjectProperties.relating_object = None - bpy.context.active_object.BIMObjectProperties.is_editing_aggregate = True + context.active_object.BIMObjectProperties.relating_object = None + context.active_object.BIMObjectProperties.is_editing_aggregate = True return {"FINISHED"} @@ -79,7 +79,7 @@ class DisableEditingAggregate(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object obj.BIMObjectProperties.is_editing_aggregate = False return {"FINISHED"} @@ -94,9 +94,9 @@ class AddAggregate(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object aggregate_collection = bpy.data.collections.new("IfcElementAssembly/Assembly") - bpy.context.scene.collection.children.link(aggregate_collection) + context.scene.collection.children.link(aggregate_collection) aggregate = bpy.data.objects.new("Assembly", None) aggregate_collection.objects.link(aggregate) bpy.ops.bim.assign_class(obj=aggregate.name, ifc_class="IfcElementAssembly") diff --git a/src/blenderbim/blenderbim/bim/module/attribute/operator.py b/src/blenderbim/blenderbim/bim/module/attribute/operator.py index 24989af37f..673c0ced6f 100644 --- a/src/blenderbim/blenderbim/bim/module/attribute/operator.py +++ b/src/blenderbim/blenderbim/bim/module/attribute/operator.py @@ -115,11 +115,11 @@ class GenerateGlobalId(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - index = bpy.context.active_object.BIMAttributeProperties.attributes.find("GlobalId") + index = context.active_object.BIMAttributeProperties.attributes.find("GlobalId") if index >= 0: - global_id = bpy.context.active_object.BIMAttributeProperties.attributes[index] + global_id = context.active_object.BIMAttributeProperties.attributes[index] else: - global_id = bpy.context.active_object.BIMAttributeProperties.attributes.add() + global_id = context.active_object.BIMAttributeProperties.attributes.add() global_id.name = "GlobalId" global_id.data_type = "string" global_id.string_value = ifcopenshell.guid.new() diff --git a/src/blenderbim/blenderbim/bim/module/augin/operator.py b/src/blenderbim/blenderbim/bim/module/augin/operator.py index 28790024fa..f7b92fbab1 100644 --- a/src/blenderbim/blenderbim/bim/module/augin/operator.py +++ b/src/blenderbim/blenderbim/bim/module/augin/operator.py @@ -16,7 +16,7 @@ class AuginLogin(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - props = bpy.context.scene.AuginProperties + props = context.scene.AuginProperties url = "https://server.auge.pro.br/API/v3/augin_rest.php/user_login" payload = {"email": props.username, "password": props.password} @@ -36,7 +36,7 @@ class AuginReset(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - props = bpy.context.scene.AuginProperties + props = context.scene.AuginProperties props.is_success = False return {"FINISHED"} @@ -49,7 +49,7 @@ class AuginCreateNewModel(bpy.types.Operator): def execute(self, context): import boto3 from botocore.config import Config - props = bpy.context.scene.AuginProperties + props = context.scene.AuginProperties # Create project url = "https://server.auge.pro.br/API/v3/augin_rest.php/new_model" @@ -113,7 +113,7 @@ class AuginCreateNewModel(bpy.types.Operator): context.scene.render.image_settings.file_format = old_file_format context.scene.render.filepath = old_filepath - client.upload_file(bpy.context.scene.BIMProperties.ifc_file, result["s3_bucket"], result["model_path"]) + client.upload_file(context.scene.BIMProperties.ifc_file, result["s3_bucket"], result["model_path"]) client.upload_file(thumb_path, result["s3_bucket"], result["thumb_path"]) @@ -121,8 +121,8 @@ class AuginCreateNewModel(bpy.types.Operator): url = "https://server.auge.pro.br/API/v3/augin_rest.php/files_uploaded" payload = { "user_token": props.token, - "ifc_filesize": os.path.getsize(bpy.context.scene.BIMProperties.ifc_file), - "model_filesize": os.path.getsize(bpy.context.scene.BIMProperties.ifc_file), + "ifc_filesize": os.path.getsize(context.scene.BIMProperties.ifc_file), + "model_filesize": os.path.getsize(context.scene.BIMProperties.ifc_file), "thumb_filesize": os.path.getsize(thumb_path), "model_upload_path": result["model_path"], "thumb_upload_path": result["thumb_path"], diff --git a/src/blenderbim/blenderbim/bim/module/augin/ui.py b/src/blenderbim/blenderbim/bim/module/augin/ui.py index b6f5697f59..6199ba55b3 100644 --- a/src/blenderbim/blenderbim/bim/module/augin/ui.py +++ b/src/blenderbim/blenderbim/bim/module/augin/ui.py @@ -28,7 +28,7 @@ class BIM_PT_augin(bpy.types.Panel): row = layout.row() row.label(text="Logged in as " + props.username) - if not bpy.context.scene.BIMProperties.ifc_file: + if not context.scene.BIMProperties.ifc_file: row = layout.row() row.label(text="No IFC Found") return diff --git a/src/blenderbim/blenderbim/bim/module/bcf/operator.py b/src/blenderbim/blenderbim/bim/module/bcf/operator.py index 648d40e5c9..4fcfbbcf77 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/operator.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/operator.py @@ -14,11 +14,11 @@ class NewBcfProject(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - bpy.context.scene.BCFProperties.is_loaded = False + context.scene.BCFProperties.is_loaded = False bcfxml = bcfstore.BcfStore.get_bcfxml() bcfxml.new_project() bpy.ops.bim.load_bcf_project() - bpy.context.scene.BCFProperties.is_loaded = True + context.scene.BCFProperties.is_loaded = True return {"FINISHED"} @@ -30,14 +30,14 @@ class LoadBcfProject(bpy.types.Operator): filter_glob: bpy.props.StringProperty(default="*.bcf;*.bcfzip", options={"HIDDEN"}) def execute(self, context): - bpy.context.scene.BCFProperties.is_loaded = False + context.scene.BCFProperties.is_loaded = False if self.filepath: bcfstore.BcfStore.bcfxml = bcf.bcfxml.load(self.filepath) bcfxml = bcfstore.BcfStore.get_bcfxml() bcfxml.get_project() - bpy.context.scene.BCFProperties.name = bcfxml.project.name + context.scene.BCFProperties.name = bcfxml.project.name bpy.ops.bim.load_bcf_topics() - bpy.context.scene.BCFProperties.is_loaded = True + context.scene.BCFProperties.is_loaded = True return {"FINISHED"} def invoke(self, context, event): @@ -53,11 +53,11 @@ class LoadBcfTopics(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() bcfxml.get_topics() - while len(bpy.context.scene.BCFProperties.topics) > 0: - bpy.context.scene.BCFProperties.topics.remove(0) + while len(context.scene.BCFProperties.topics) > 0: + context.scene.BCFProperties.topics.remove(0) index = 0 for topic_guid in bcfxml.topics.keys(): - new = bpy.context.scene.BCFProperties.topics.add() + new = context.scene.BCFProperties.topics.add() bpy.ops.bim.load_bcf_topic(topic_guid = topic_guid, topic_index = index) index += 1 return {"FINISHED"} @@ -73,7 +73,7 @@ class LoadBcfTopic(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() topic = bcfxml.get_topic(self.topic_guid) - new = bpy.context.scene.BCFProperties.topics[self.topic_index] + new = context.scene.BCFProperties.topics[self.topic_index] data_map = { "name": topic.guid, "title": topic.title, @@ -143,7 +143,7 @@ class LoadBcfComments(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() bcfxml.get_comments(self.topic_guid) - blender_topic = bpy.context.scene.BCFProperties.topics.get(self.topic_guid) + blender_topic = context.scene.BCFProperties.topics.get(self.topic_guid) while len(blender_topic.comments) > 0: blender_topic.comments.remove(0) for comment in bcfxml.topics[self.topic_guid].comments.values(): @@ -170,7 +170,7 @@ class EditBcfProjectName(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - bcfxml.project.name = bpy.context.scene.BCFProperties.name + bcfxml.project.name = context.scene.BCFProperties.name bcfxml.edit_project() return {"FINISHED"} @@ -182,7 +182,7 @@ class EditBcfAuthor(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - bcfxml.author = bpy.context.scene.BCFProperties.author + bcfxml.author = context.scene.BCFProperties.author return {"FINISHED"} @@ -192,7 +192,7 @@ class EditBcfTopicName(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] bcfxml = bcfstore.BcfStore.get_bcfxml() topic = bcfxml.topics[blender_topic.name] @@ -207,7 +207,7 @@ class EditBcfTopic(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] bcfxml = bcfstore.BcfStore.get_bcfxml() @@ -250,7 +250,7 @@ class AddBcfTopic(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() bcfxml.add_topic() - new = bpy.context.scene.BCFProperties.topics.add() + new = context.scene.BCFProperties.topics.add() new.name = "New Topic" bpy.ops.bim.load_bcf_topics() return {"FINISHED"} @@ -263,7 +263,7 @@ class AddBcfBimSnippet(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] bim_snippet = bcf.v2.data.BimSnippet() @@ -282,7 +282,7 @@ class AddBcfRelatedTopic(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] related_topic = None for topic in bcfxml.topics.values(): @@ -306,7 +306,7 @@ class AddBcfHeaderFile(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] header_file = bcf.v2.data.HeaderFile() @@ -329,9 +329,9 @@ class ViewBcfTopic(bpy.types.Operator): topic_guid: bpy.props.StringProperty() def execute(self, context): - for index, topic in enumerate(bpy.context.scene.BCFProperties.topics): + for index, topic in enumerate(context.scene.BCFProperties.topics): if topic.guid.lower() == self.topic_guid.lower(): - bpy.context.scene.BCFProperties.active_topic_index = index + context.scene.BCFProperties.active_topic_index = index return {"FINISHED"} @@ -341,44 +341,44 @@ class AddBcfViewpoint(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - if not bpy.context.scene.camera: + if not context.scene.camera: return {"FINISHED"} bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] viewpoint = bcf.v2.data.Viewpoint() - if bpy.context.scene.camera.data.type == "ORTHO": + if context.scene.camera.data.type == "ORTHO": camera = bcf.v2.data.OrthogonalCamera() - camera.view_to_world_scale = bpy.context.scene.camera.data.ortho_scale + camera.view_to_world_scale = context.scene.camera.data.ortho_scale viewpoint.orthogonal_camera = camera - elif bpy.context.scene.camera.data.type == "PERSP": + elif context.scene.camera.data.type == "PERSP": camera = bcf.v2.data.PerspectiveCamera() - camera.field_of_view = degrees(bpy.context.scene.camera.data.angle) + camera.field_of_view = degrees(context.scene.camera.data.angle) viewpoint.perspective_camera = camera - camera.camera_view_point.x = bpy.context.scene.camera.location.x - camera.camera_view_point.y = bpy.context.scene.camera.location.y - camera.camera_view_point.z = bpy.context.scene.camera.location.z - direction = bpy.context.scene.camera.matrix_world.to_quaternion() @ Vector((0.0, 0.0, -1.0)) + camera.camera_view_point.x = context.scene.camera.location.x + camera.camera_view_point.y = context.scene.camera.location.y + camera.camera_view_point.z = context.scene.camera.location.z + direction = context.scene.camera.matrix_world.to_quaternion() @ Vector((0.0, 0.0, -1.0)) camera.camera_direction.x = direction.x camera.camera_direction.y = direction.y camera.camera_direction.z = direction.z - up = bpy.context.scene.camera.matrix_world.to_quaternion() @ Vector((0.0, 1.0, 0.0)) + up = context.scene.camera.matrix_world.to_quaternion() @ Vector((0.0, 1.0, 0.0)) camera.camera_up_vector.x = up.x camera.camera_up_vector.y = up.y camera.camera_up_vector.z = up.z - old_file_format = bpy.context.scene.render.image_settings.file_format - bpy.context.scene.render.image_settings.file_format = "PNG" - old_filepath = bpy.context.scene.render.filepath - bpy.context.scene.render.filepath = os.path.join(bpy.context.scene.BIMProperties.data_dir, "snapshot.png") + old_file_format = context.scene.render.image_settings.file_format + context.scene.render.image_settings.file_format = "PNG" + old_filepath = context.scene.render.filepath + context.scene.render.filepath = os.path.join(context.scene.BIMProperties.data_dir, "snapshot.png") bpy.ops.render.opengl(write_still=True) - viewpoint.snapshot = bpy.context.scene.render.filepath + viewpoint.snapshot = context.scene.render.filepath bcfxml.add_viewpoint(topic, viewpoint) - bpy.context.scene.render.filepath = old_filepath - bpy.context.scene.render.image_settings.file_format = old_file_format + context.scene.render.filepath = old_filepath + context.scene.render.image_settings.file_format = old_file_format props.active_topic_index = props.active_topic_index # refreshes the BCF Topic return {"FINISHED"} @@ -390,7 +390,7 @@ class RemoveBcfViewpoint(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] viewpoint_guid = blender_topic.viewpoints topic = bcfxml.topics[blender_topic.name] @@ -407,7 +407,7 @@ class RemoveBcfFile(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] bcfxml.delete_file(topic, self.index) @@ -422,7 +422,7 @@ class AddBcfReferenceLink(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] if not blender_topic.reference_link: @@ -441,7 +441,7 @@ class AddBcfDocumentReference(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] if not blender_topic.document_reference: @@ -463,7 +463,7 @@ class AddBcfLabel(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] if not blender_topic.label: @@ -483,7 +483,7 @@ class EditBcfReferenceLinks(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] for index, reference_link in enumerate(topic.reference_links): @@ -501,7 +501,7 @@ class EditBcfLabels(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] for index, label in enumerate(blender_topic.labels): @@ -520,7 +520,7 @@ class RemoveBcfReferenceLink(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] del topic.reference_links[self.index] @@ -537,7 +537,7 @@ class RemoveBcfLabel(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] del topic.labels[self.index] @@ -553,7 +553,7 @@ class RemoveBcfBimSnippet(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] bcfxml.delete_bim_snippet(topic) @@ -571,7 +571,7 @@ class RemoveBcfDocumentReference(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] bcfxml.delete_document_reference(topic, self.index) @@ -587,7 +587,7 @@ class RemoveBcfRelatedTopic(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] del topic.related_topics[self.index] @@ -604,7 +604,7 @@ class RemoveBcfComment(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] bcfxml.delete_comment(self.comment_guid, topic) @@ -620,7 +620,7 @@ class EditBcfComment(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] blender_comment = blender_topic.comments.get(self.comment_guid) topic = bcfxml.topics[blender_topic.name] @@ -639,7 +639,7 @@ class AddBcfComment(bpy.types.Operator): def execute(self, context): bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] if not blender_topic.comment: @@ -662,7 +662,7 @@ class ActivateBcfViewpoint(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() bcfxml = bcfstore.BcfStore.get_bcfxml() - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties blender_topic = props.topics[props.active_topic_index] topic = bcfxml.topics[blender_topic.name] if not topic.viewpoints: @@ -673,11 +673,11 @@ class ActivateBcfViewpoint(bpy.types.Operator): obj = bpy.data.objects.get("Viewpoint") if not obj: obj = bpy.data.objects.new("Viewpoint", bpy.data.cameras.new("Viewpoint")) - bpy.context.scene.collection.objects.link(obj) - bpy.context.scene.camera = obj + context.scene.collection.objects.link(obj) + context.scene.camera = obj - cam_width = bpy.context.scene.render.resolution_x - cam_height = bpy.context.scene.render.resolution_y + cam_width = context.scene.render.resolution_x + cam_height = context.scene.render.resolution_y cam_aspect = cam_width / cam_height if viewpoint.snapshot: @@ -697,7 +697,7 @@ class ActivateBcfViewpoint(bpy.types.Operator): else: background.frame_method = "CROP" background.display_depth = "FRONT" - area = next(area for area in bpy.context.screen.areas if area.type == "VIEW_3D") + area = next(area for area in context.screen.areas if area.type == "VIEW_3D") area.spaces[0].region_3d.view_perspective = "CAMERA" if viewpoint.orthogonal_camera: @@ -719,13 +719,13 @@ class ActivateBcfViewpoint(bpy.types.Operator): if gp: bpy.data.grease_pencils.remove(gp) if viewpoint.lines: - self.draw_lines(viewpoint) + self.draw_lines(viewpoint, context) - self.delete_clipping_planes() + self.delete_clipping_planes(context) if viewpoint.clipping_planes: self.create_clipping_planes(viewpoint) - self.delete_bitmaps() + self.delete_bitmaps(context) if viewpoint.bitmaps: self.create_bitmaps(bcfxml, viewpoint, topic) @@ -776,9 +776,9 @@ class ActivateBcfViewpoint(bpy.types.Operator): if global_id in global_id_colours: obj.color = self.hex_to_rgb(global_id_colours[global_id]) - def draw_lines(self, viewpoint): + def draw_lines(self, viewpoint, context): gp = bpy.data.grease_pencils.new("BCF") - scene = bpy.context.scene + scene = context.scene scene.grease_pencil = gp scene.frame_set(1) layer = gp.layers.new("BCF Annotation", set_active=True) @@ -808,19 +808,19 @@ class ActivateBcfViewpoint(bpy.types.Operator): ) n += 1 - def delete_clipping_planes(self): + def delete_clipping_planes(self, context): collection = bpy.data.collections.get("Sections") if not collection: return for section in collection.objects: - bpy.context.view_layer.objects.active = section + context.view_layer.objects.active = section bpy.ops.bim.remove_section_plane() - def delete_bitmaps(self): + def delete_bitmaps(self, context): collection = bpy.data.collections.get("Bitmaps") if not collection: collection = bpy.data.collections.new("Bitmaps") - bpy.context.scene.collection.children.link(collection) + context.scene.collection.children.link(collection) for bitmap in collection.objects: bpy.data.objects.remove(bitmap) @@ -860,7 +860,7 @@ class OpenBcfReferenceLink(bpy.types.Operator): index: bpy.props.IntProperty() def execute(self, context): - webbrowser.open(bpy.context.scene.BCFProperties.topic_links[self.index].name) + webbrowser.open(context.scene.BCFProperties.topic_links[self.index].name) return {"FINISHED"} @@ -872,7 +872,7 @@ class SelectBcfHeaderFile(bpy.types.Operator): def execute(self, context): if self.filepath: - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties topic = props.topics[props.active_topic_index] topic.file_reference = self.filepath return {"FINISHED"} @@ -890,7 +890,7 @@ class SelectBcfBimSnippetReference(bpy.types.Operator): def execute(self, context): if self.filepath: - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties topic = props.topics[props.active_topic_index] topic.bim_snippet_reference = self.filepath return {"FINISHED"} @@ -908,7 +908,7 @@ class SelectBcfDocumentReference(bpy.types.Operator): def execute(self, context): if self.filepath: - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties topic = props.topics[props.active_topic_index] topic.document_reference = self.filepath return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/bcf/prop.py b/src/blenderbim/blenderbim/bim/module/bcf/prop.py index 5c7baa1bd1..f64ec46382 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/prop.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/prop.py @@ -23,37 +23,37 @@ def purge(): def updateBcfReferenceLink(self, context): - if bpy.context.scene.BCFProperties.is_loaded: + if context.scene.BCFProperties.is_loaded: bpy.ops.bim.edit_bcf_reference_links() def updateBcfLabel(self, context): - if bpy.context.scene.BCFProperties.is_loaded: + if context.scene.BCFProperties.is_loaded: bpy.ops.bim.edit_bcf_labels() def updateBcfProjectName(self, context): - if bpy.context.scene.BCFProperties.is_loaded: + if context.scene.BCFProperties.is_loaded: bpy.ops.bim.edit_bcf_project_name() def updateBcfAuthor(self, context): - if bpy.context.scene.BCFProperties.is_loaded: + if context.scene.BCFProperties.is_loaded: bpy.ops.bim.edit_bcf_author() def updateBcfTopicName(self, context): - if bpy.context.scene.BCFProperties.is_loaded: + if context.scene.BCFProperties.is_loaded: bpy.ops.bim.edit_bcf_topic_name() def updateBcfTopicIsEditable(self, context): - if bpy.context.scene.BCFProperties.is_loaded and not self.is_editable: + if context.scene.BCFProperties.is_loaded and not self.is_editable: bpy.ops.bim.edit_bcf_topic() def updateBcfCommentIsEditable(self, context): - if bpy.context.scene.BCFProperties.is_loaded and not self.is_editable: + if context.scene.BCFProperties.is_loaded and not self.is_editable: bpy.ops.bim.edit_bcf_comment(comment_guid = self.name) @@ -61,7 +61,7 @@ def refreshBcfTopic(self, context): global bcfviewpoints_enum bcfviewpoints_enum = None - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties bcfxml = bcfstore.BcfStore.get_bcfxml() topic = props.topics[props.active_topic_index] header = bcfxml.get_header(topic.name) @@ -80,7 +80,7 @@ def getBcfViewpoints(self, context): global bcfviewpoints_enum if bcfviewpoints_enum is None: bcfviewpoints_enum = [] - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties bcfxml = bcfstore.BcfStore.get_bcfxml() topic = props.topics[props.active_topic_index] viewpoints = bcfxml.get_viewpoints(topic.name) diff --git a/src/blenderbim/blenderbim/bim/module/bcf/ui.py b/src/blenderbim/blenderbim/bim/module/bcf/ui.py index f03032d4ef..f90983d609 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/ui.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/ui.py @@ -17,7 +17,7 @@ class BIM_PT_bcf(Panel): layout.use_property_decorate = False scene = context.scene - props = bpy.context.scene.BCFProperties + props = scene.BCFProperties row = layout.row(align=True) row.operator("bim.new_bcf_project", text="New Project") @@ -34,7 +34,7 @@ class BIM_PT_bcf(Panel): row = layout.row() row.prop(props, "author") - props = bpy.context.scene.BCFProperties + props = context.scene.BCFProperties row = layout.row() row.template_list("BIM_UL_topics", "", props, "topics", props, "active_topic_index") col = row.column(align=True) @@ -93,7 +93,7 @@ class BIM_PT_bcf_metadata(Panel): layout.use_property_decorate = False scene = context.scene - props = bpy.context.scene.BCFProperties + props = scene.BCFProperties if props.active_topic_index >= len(props.topics): layout.label(text="No BCF project is loaded") @@ -236,7 +236,7 @@ class BIM_PT_bcf_comments(Panel): layout.use_property_decorate = False scene = context.scene - props = bpy.context.scene.BCFProperties + props = scene.BCFProperties if props.active_topic_index >= len(props.topics): layout.label(text="No BCF project is loaded") diff --git a/src/blenderbim/blenderbim/bim/module/bimtester/operator.py b/src/blenderbim/blenderbim/bim/module/bimtester/operator.py index 5e02e59e40..150ef4c5c0 100644 --- a/src/blenderbim/blenderbim/bim/module/bimtester/operator.py +++ b/src/blenderbim/blenderbim/bim/module/bimtester/operator.py @@ -52,11 +52,11 @@ class BIMTesterPurge(bpy.types.Operator): def execute(self, context): filename = os.path.join( - bpy.context.scene.BimTesterProperties.features_dir, - bpy.context.scene.BimTesterProperties.features_file + ".feature", + context.scene.BimTesterProperties.features_dir, + context.scene.BimTesterProperties.features_file + ".feature", ) cwd = os.getcwd() - os.chdir(bpy.context.scene.BimTesterProperties.features_dir) + os.chdir(context.scene.BimTesterProperties.features_dir) bimtester.clean.TestPurger().purge() os.chdir(cwd) return {"FINISHED"} @@ -71,7 +71,7 @@ class SelectFeature(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.BimTesterProperties.feature = self.filepath + context.scene.BimTesterProperties.feature = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -88,7 +88,7 @@ class SelectSteps(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.BimTesterProperties.steps = self.filepath + context.scene.BimTesterProperties.steps = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -120,14 +120,14 @@ class RejectElement(bpy.types.Operator): def execute(self, context): lines = [] self.file = IfcStore.get_file() - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: lines.append( " * The element {} should not exist because {}".format( self.file.by_id(obj.BIMObjectProperties.ifc_definition_id).GlobalId, - bpy.context.scene.BimTesterProperties.qa_reject_element_reason, + context.scene.BimTesterProperties.qa_reject_element_reason, ) ) - QAHelper.append_to_scenario(lines) + QAHelper.append_to_scenario(lines, context) return {"FINISHED"} @@ -138,12 +138,12 @@ class ApproveClass(bpy.types.Operator): def execute(self, context): lines = [] self.file = IfcStore.get_file() - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) lines.append(" * The element {} is an {}".format(element.GlobalId, element.is_a())) - QAHelper.append_to_scenario(lines) + QAHelper.append_to_scenario(lines, context) return {"FINISHED"} @@ -154,16 +154,16 @@ class RejectClass(bpy.types.Operator): def execute(self, context): lines = [] self.file = IfcStore.get_file() - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue lines.append( " * The element {} is an {}".format( self.file.by_id(obj.BIMObjectProperties.ifc_definition_id).GlobalId, - bpy.context.scene.BimTesterProperties.audit_ifc_class, + context.scene.BimTesterProperties.audit_ifc_class, ) ) - QAHelper.append_to_scenario(lines) + QAHelper.append_to_scenario(lines, context) return {"FINISHED"} @@ -175,7 +175,7 @@ class SelectAudited(bpy.types.Operator): def execute(self, context): audited_global_ids = [] self.file = IfcStore.get_file() - for filename in Path(bpy.context.scene.BimTesterProperties.features_dir).glob("*.feature"): + for filename in Path(context.scene.BimTesterProperties.features_dir).glob("*.feature"): with open(filename, "r") as feature_file: lines = feature_file.readlines() for line in lines: @@ -183,7 +183,7 @@ class SelectAudited(bpy.types.Operator): for word in words: if self.is_a_global_id(word): audited_global_ids.append(word) - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue if self.file.by_id(obj.BIMObjectProperties.ifc_definition_id).GlobalId in audited_global_ids: @@ -196,10 +196,10 @@ class SelectAudited(bpy.types.Operator): class QAHelper: @classmethod - def append_to_scenario(cls, lines): + def append_to_scenario(cls, lines, context): filename = os.path.join( - bpy.context.scene.BimTesterProperties.features_dir, - bpy.context.scene.BimTesterProperties.features_file + ".feature", + context.scene.BimTesterProperties.features_dir, + context.scene.BimTesterProperties.features_file + ".feature", ) if os.path.exists(filename + "~"): os.remove(filename + "~") @@ -210,7 +210,7 @@ class QAHelper: for source_line in source: if ( "Scenario: " in source_line - and bpy.context.scene.BimTesterProperties.scenario == source_line.strip()[len("Scenario: ") :] + and context.scene.BimTesterProperties.scenario == source_line.strip()[len("Scenario: ") :] ): is_in_scenario = True elif is_in_scenario: diff --git a/src/blenderbim/blenderbim/bim/module/clash/operator.py b/src/blenderbim/blenderbim/bim/module/clash/operator.py index 05fd235d18..b507a90329 100644 --- a/src/blenderbim/blenderbim/bim/module/clash/operator.py +++ b/src/blenderbim/blenderbim/bim/module/clash/operator.py @@ -23,7 +23,7 @@ class ExportClashSets(bpy.types.Operator): def execute(self, context): self.filepath = bpy.path.ensure_ext(self.filepath, ".json") clash_sets = [] - for clash_set in bpy.context.scene.BIMClashProperties.clash_sets: + for clash_set in context.scene.BIMClashProperties.clash_sets: self.a = [] self.b = [] for ab in ["a", "b"]: @@ -56,7 +56,7 @@ class ImportClashSets(bpy.types.Operator): with open(self.filepath) as f: clash_sets = json.load(f) for clash_set in clash_sets: - new = bpy.context.scene.BIMClashProperties.clash_sets.add() + new = context.scene.BIMClashProperties.clash_sets.add() new.name = clash_set["name"] new.tolerance = clash_set["tolerance"] for clash_source in clash_set["a"]: @@ -81,7 +81,7 @@ class AddClashSet(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - new = bpy.context.scene.BIMClashProperties.clash_sets.add() + new = context.scene.BIMClashProperties.clash_sets.add() new.name = "New Clash Set" new.tolerance = 0.01 return {"FINISHED"} @@ -94,7 +94,7 @@ class RemoveClashSet(bpy.types.Operator): index: bpy.props.IntProperty() def execute(self, context): - bpy.context.scene.BIMClashProperties.clash_sets.remove(self.index) + context.scene.BIMClashProperties.clash_sets.remove(self.index) return {"FINISHED"} @@ -105,7 +105,7 @@ class AddClashSource(bpy.types.Operator): group: bpy.props.StringProperty() def execute(self, context): - clash_set = bpy.context.scene.BIMClashProperties.clash_sets[bpy.context.scene.BIMClashProperties.active_clash_set_index] + clash_set = context.scene.BIMClashProperties.clash_sets[context.scene.BIMClashProperties.active_clash_set_index] source = getattr(clash_set, self.group).add() return {"FINISHED"} @@ -118,7 +118,7 @@ class RemoveClashSource(bpy.types.Operator): group: bpy.props.StringProperty() def execute(self, context): - clash_set = bpy.context.scene.BIMClashProperties.clash_sets[bpy.context.scene.BIMClashProperties.active_clash_set_index] + clash_set = context.scene.BIMClashProperties.clash_sets[context.scene.BIMClashProperties.active_clash_set_index] getattr(clash_set, self.group).remove(self.index) return {"FINISHED"} @@ -133,7 +133,7 @@ class SelectClashSource(bpy.types.Operator): group: bpy.props.StringProperty() def execute(self, context): - clash_set = bpy.context.scene.BIMClashProperties.clash_sets[bpy.context.scene.BIMClashProperties.active_clash_set_index] + clash_set = context.scene.BIMClashProperties.clash_sets[context.scene.BIMClashProperties.active_clash_set_index] getattr(clash_set, self.group)[self.index].name = self.filepath return {"FINISHED"} @@ -149,7 +149,7 @@ class SelectClashResults(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.BIMClashProperties.clash_results_path = self.filepath + context.scene.BIMClashProperties.clash_results_path = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -164,7 +164,7 @@ class SelectSmartGroupedClashesPath(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.BIMClashProperties.smart_grouped_clashes_path = self.filepath + context.scene.BIMClashProperties.smart_grouped_clashes_path = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -196,32 +196,32 @@ class ExecuteIfcClash(bpy.types.Operator): settings.logger.setLevel(logging.DEBUG) ifc_clasher = ifcclash.IfcClasher(settings) - if bpy.context.scene.BIMClashProperties.should_create_clash_snapshots: + if context.scene.BIMClashProperties.should_create_clash_snapshots: def get_viewpoint_snapshot(self, viewpoint, mat): camera = bpy.data.objects.get("IFC Clash Camera") if not camera: camera = bpy.data.objects.new("IFC Clash Camera", bpy.data.cameras.new("IFC Clash Camera")) - bpy.context.scene.collection.objects.link(camera) + context.scene.collection.objects.link(camera) camera.matrix_world = Matrix(mat) - bpy.context.scene.camera = camera + context.scene.camera = camera camera.data.angle = radians(60) - area = next(area for area in bpy.context.screen.areas if area.type == "VIEW_3D") + area = next(area for area in context.screen.areas if area.type == "VIEW_3D") area.spaces[0].region_3d.view_perspective = "CAMERA" area.spaces[0].shading.show_xray = True - bpy.context.scene.render.resolution_x = 480 - bpy.context.scene.render.resolution_y = 270 - bpy.context.scene.render.image_settings.file_format = "PNG" - bpy.context.scene.render.filepath = os.path.join( - bpy.context.scene.BIMProperties.data_dir, "snapshot.png" + context.scene.render.resolution_x = 480 + context.scene.render.resolution_y = 270 + context.scene.render.image_settings.file_format = "PNG" + context.scene.render.filepath = os.path.join( + context.scene.BIMProperties.data_dir, "snapshot.png" ) bpy.ops.render.opengl(write_still=True) - return bpy.context.scene.render.filepath + return context.scene.render.filepath ifcclash.IfcClasher.get_viewpoint_snapshot = get_viewpoint_snapshot ifc_clasher.clash_sets = [] - for clash_set in bpy.context.scene.BIMClashProperties.clash_sets: + for clash_set in context.scene.BIMClashProperties.clash_sets: self.a = [] self.b = [] for ab in ["a", "b"]: @@ -256,8 +256,8 @@ class SelectIfcClashResults(bpy.types.Operator): self.filepath = bpy.path.ensure_ext(self.filepath, ".json") with open(self.filepath) as f: clash_sets = json.load(f) - clash_set_name = bpy.context.scene.BIMClashProperties.clash_sets[ - bpy.context.scene.BIMClashProperties.active_clash_set_index + clash_set_name = context.scene.BIMClashProperties.clash_sets[ + context.scene.BIMClashProperties.active_clash_set_index ].name global_ids = [] for clash_set in clash_sets: @@ -268,7 +268,7 @@ class SelectIfcClashResults(bpy.types.Operator): return {"CANCELLED"} for clash in clash_set["clashes"].values(): global_ids.extend([clash["a_global_id"], clash["b_global_id"]]) - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) @@ -287,7 +287,7 @@ class SmartClashGroup(bpy.types.Operator): import ifcclash settings = ifcclash.IfcClashSettings() - self.filepath = bpy.path.ensure_ext(bpy.context.scene.BIMClashProperties.clash_results_path, ".json") + self.filepath = bpy.path.ensure_ext(context.scene.BIMClashProperties.clash_results_path, ".json") settings.output = self.filepath settings.logger = logging.getLogger("Clash") settings.logger.setLevel(logging.DEBUG) @@ -297,21 +297,21 @@ class SmartClashGroup(bpy.types.Operator): clash_sets = json.load(f) # execute the smart grouping - save_path = bpy.path.ensure_ext(bpy.context.scene.BIMClashProperties.smart_grouped_clashes_path, ".json") + save_path = bpy.path.ensure_ext(context.scene.BIMClashProperties.smart_grouped_clashes_path, ".json") smart_grouped_clashes = ifc_clasher.smart_group_clashes( - clash_sets, bpy.context.scene.BIMClashProperties.smart_clash_grouping_max_distance + clash_sets, context.scene.BIMClashProperties.smart_clash_grouping_max_distance ) # save smart_groups to json with open(save_path, "w") as f: f.write(json.dumps(smart_grouped_clashes)) - clash_set_name = bpy.context.scene.BIMClashProperties.clash_sets[ - bpy.context.scene.BIMClashProperties.active_clash_set_index + clash_set_name = context.scene.BIMClashProperties.clash_sets[ + context.scene.BIMClashProperties.active_clash_set_index ].name # Reset the list of smart_clash_groups for the UI - bpy.context.scene.BIMClashProperties.smart_clash_groups.clear() + context.scene.BIMClashProperties.smart_clash_groups.clear() for clash_set, smart_groups in smart_grouped_clashes.items(): # Only select the clashes that correspond to the actively selected IFC Clash Set @@ -319,7 +319,7 @@ class SmartClashGroup(bpy.types.Operator): continue else: for smart_group, global_id_pairs in smart_groups[0].items(): - new_group = bpy.context.scene.BIMClashProperties.smart_clash_groups.add() + new_group = context.scene.BIMClashProperties.smart_clash_groups.add() new_group.number = f"{smart_group}" for pair in global_id_pairs: @@ -336,17 +336,17 @@ class LoadSmartGroupsForActiveClashSet(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - smart_groups_path = bpy.path.ensure_ext(bpy.context.scene.BIMClashProperties.smart_grouped_clashes_path, ".json") + smart_groups_path = bpy.path.ensure_ext(context.scene.BIMClashProperties.smart_grouped_clashes_path, ".json") - clash_set_name = bpy.context.scene.BIMClashProperties.clash_sets[ - bpy.context.scene.BIMClashProperties.active_clash_set_index + clash_set_name = context.scene.BIMClashProperties.clash_sets[ + context.scene.BIMClashProperties.active_clash_set_index ].name with open(smart_groups_path) as f: smart_grouped_clashes = json.load(f) # Reset the list of smart_clash_groups for the UI - bpy.context.scene.BIMClashProperties.smart_clash_groups.clear() + context.scene.BIMClashProperties.smart_clash_groups.clear() for clash_set, smart_groups in smart_grouped_clashes.items(): # Only select the clashes that correspond to the actively selected IFC Clash Set @@ -354,7 +354,7 @@ class LoadSmartGroupsForActiveClashSet(bpy.types.Operator): continue else: for smart_group, global_id_pairs in smart_groups[0].items(): - new_group = bpy.context.scene.BIMClashProperties.smart_clash_groups.add() + new_group = context.scene.BIMClashProperties.smart_clash_groups.add() new_group.number = f"{smart_group}" for pair in global_id_pairs: for id in pair: @@ -371,12 +371,12 @@ class SelectSmartGroup(bpy.types.Operator): def execute(self, context): # Select smart group in view - selected_smart_group = bpy.context.scene.BIMClashProperties.smart_clash_groups[ - bpy.context.scene.BIMCLashProperties.active_smart_group_index + selected_smart_group = context.scene.BIMClashProperties.smart_clash_groups[ + context.scene.BIMCLashProperties.active_smart_group_index ] # print(selected_smart_group.number) - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) @@ -391,13 +391,13 @@ class SelectSmartGroup(bpy.types.Operator): class BlenderClasher: - def process_clash_set(self): + def process_clash_set(self, context): import collision a_cm = collision.CollisionManager() b_cm = collision.CollisionManager() - self.add_to_cm(a_cm, bpy.context.scene.BIMClashProperties.blender_clash_set_a) - self.add_to_cm(b_cm, bpy.context.scene.BIMClashProperties.blender_clash_set_b) + self.add_to_cm(a_cm, context.scene.BIMClashProperties.blender_clash_set_a, context) + self.add_to_cm(b_cm, context.scene.BIMClashProperties.blender_clash_set_b, context) results = a_cm.in_collision_other(b_cm, return_data=True) if not results[0]: print("No clashes") @@ -410,20 +410,20 @@ class BlenderClasher: print(contact.raw.normal) print(contact.raw.pos) - def add_to_cm(self, cm, object_names): + def add_to_cm(self, cm, object_names, context): import ifcclash for object_name in object_names: name = object_name.name obj = bpy.data.objects[name] - triangulated_mesh = self.triangulate_mesh(obj) + triangulated_mesh = self.triangulate_mesh(obj, context) mesh = ifcclash.Mesh() mesh.vertices = np.array([tuple(obj.matrix_world @ v.co) for v in triangulated_mesh.vertices]) mesh.faces = np.array([tuple(p.vertices) for p in triangulated_mesh.polygons]) cm.add_object(name, mesh) - def triangulate_mesh(self, obj): - mesh = obj.evaluated_get(bpy.context.evaluated_depsgraph_get()).to_mesh() + def triangulate_mesh(self, obj, context): + mesh = obj.evaluated_get(context.evaluated_depsgraph_get()).to_mesh() bm = bmesh.new() bm.from_mesh(mesh) bmesh.ops.triangulate(bm, faces=bm.faces) @@ -439,10 +439,10 @@ class SetBlenderClashSetA(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - while len(bpy.context.scene.BIMClashProperties.blender_clash_set_a) > 0: - bpy.context.scene.BIMClashProperties.blender_clash_set_a.remove(0) - for obj in bpy.context.selected_objects: - new = bpy.context.scene.BIMClashProperties.blender_clash_set_a.add() + while len(context.scene.BIMClashProperties.blender_clash_set_a) > 0: + context.scene.BIMClashProperties.blender_clash_set_a.remove(0) + for obj in context.selected_objects: + new = context.scene.BIMClashProperties.blender_clash_set_a.add() new.name = obj.name return {"FINISHED"} @@ -453,10 +453,10 @@ class SetBlenderClashSetB(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - while len(bpy.context.scene.BIMClashProperties.blender_clash_set_b) > 0: - bpy.context.scene.BIMClashProperties.blender_clash_set_b.remove(0) - for obj in bpy.context.selected_objects: - new = bpy.context.scene.BIMClashProperties.blender_clash_set_b.add() + while len(context.scene.BIMClashProperties.blender_clash_set_b) > 0: + context.scene.BIMClashProperties.blender_clash_set_b.remove(0) + for obj in context.selected_objects: + new = context.scene.BIMClashProperties.blender_clash_set_b.add() new.name = obj.name return {"FINISHED"} @@ -467,5 +467,5 @@ class ExecuteBlenderClash(bpy.types.Operator): def execute(self, context): blender_clasher = BlenderClasher() - blender_clasher.process_clash_set() + blender_clasher.process_clash_set(context) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/classification/operator.py b/src/blenderbim/blenderbim/bim/module/classification/operator.py index 55c5b4d9b6..7603b09d04 100644 --- a/src/blenderbim/blenderbim/bim/module/classification/operator.py +++ b/src/blenderbim/blenderbim/bim/module/classification/operator.py @@ -133,7 +133,7 @@ class EnableEditingClassificationReference(bpy.types.Operator): obj: bpy.props.StringProperty() def execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object props = obj.BIMClassificationReferenceProperties while len(props.reference_attributes) > 0: props.reference_attributes.remove(0) @@ -157,7 +157,7 @@ class DisableEditingClassificationReference(bpy.types.Operator): obj: bpy.props.StringProperty() def execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object obj.BIMClassificationReferenceProperties.active_reference_id = 0 return {"FINISHED"} @@ -173,7 +173,7 @@ class RemoveClassificationReference(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "classification.remove_reference", @@ -198,7 +198,7 @@ class EditClassificationReference(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object props = obj.BIMClassificationReferenceProperties attributes = {} for attribute in props.reference_attributes: @@ -228,7 +228,7 @@ class AddClassificationReference(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() classification = None diff --git a/src/blenderbim/blenderbim/bim/module/cobie/operator.py b/src/blenderbim/blenderbim/bim/module/cobie/operator.py index ccda8add22..6d8221189a 100644 --- a/src/blenderbim/blenderbim/bim/module/cobie/operator.py +++ b/src/blenderbim/blenderbim/bim/module/cobie/operator.py @@ -15,7 +15,7 @@ class SelectCobieIfcFile(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.COBieProperties.cobie_ifc_file = self.filepath + context.scene.COBieProperties.cobie_ifc_file = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -30,7 +30,7 @@ class SelectCobieJsonFile(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.COBieProperties.cobie_json_file = self.filepath + context.scene.COBieProperties.cobie_json_file = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -45,7 +45,7 @@ class ExecuteIfcCobie(bpy.types.Operator): def execute(self, context): from cobie import IfcCobieParser - props = bpy.context.scene.COBieProperties + props = context.scene.COBieProperties output_dir = os.path.dirname(props.cobie_ifc_file) diff --git a/src/blenderbim/blenderbim/bim/module/context/operator.py b/src/blenderbim/blenderbim/bim/module/context/operator.py index 11096912d1..9936e1787c 100644 --- a/src/blenderbim/blenderbim/bim/module/context/operator.py +++ b/src/blenderbim/blenderbim/bim/module/context/operator.py @@ -21,9 +21,9 @@ class AddSubcontext(bpy.types.Operator): "context.add_context", self.file, **{ - "context": self.context or bpy.context.scene.BIMProperties.available_contexts, - "subcontext": self.subcontext or bpy.context.scene.BIMProperties.available_subcontexts, - "target_view": self.target_view or bpy.context.scene.BIMProperties.available_target_views, + "context": self.context or context.scene.BIMProperties.available_contexts, + "subcontext": self.subcontext or context.scene.BIMProperties.available_subcontexts, + "target_view": self.target_view or context.scene.BIMProperties.available_target_views, }, ) Data.load(IfcStore.get_file()) diff --git a/src/blenderbim/blenderbim/bim/module/cost/operator.py b/src/blenderbim/blenderbim/bim/module/cost/operator.py index 9eecfc3b43..f42a719ea7 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/operator.py +++ b/src/blenderbim/blenderbim/bim/module/cost/operator.py @@ -307,7 +307,7 @@ class AssignCostItemProduct(bpy.types.Operator): def _execute(self, context): related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] if self.related_object else context.selected_objects ) self.file = IfcStore.get_file() ifcopenshell.api.run( @@ -336,7 +336,7 @@ class UnassignCostItemProduct(bpy.types.Operator): def _execute(self, context): related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] if self.related_object else context.selected_objects ) self.file = IfcStore.get_file() ifcopenshell.api.run( @@ -621,7 +621,7 @@ class SelectCostItemProducts(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() related_products = Data.cost_items[self.cost_item]["Controls"] - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: obj.select_set(False) if obj.BIMObjectProperties.ifc_definition_id in related_products: obj.select_set(True) @@ -640,7 +640,7 @@ class SelectCostScheduleProducts(bpy.types.Operator): for cost_item_id in Data.cost_schedules[self.cost_schedule]["Controls"]: self.get_related_products(Data.cost_items[cost_item_id]) self.related_products = set(self.related_products) - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: obj.select_set(False) if obj.BIMObjectProperties.ifc_definition_id in self.related_products: obj.select_set(True) diff --git a/src/blenderbim/blenderbim/bim/module/covetool/operator.py b/src/blenderbim/blenderbim/bim/module/covetool/operator.py index 9351b5106c..a1db49bdba 100644 --- a/src/blenderbim/blenderbim/bim/module/covetool/operator.py +++ b/src/blenderbim/blenderbim/bim/module/covetool/operator.py @@ -16,13 +16,13 @@ class Login(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - token = api.login(bpy.context.scene.CoveToolProperties.username, bpy.context.scene.CoveToolProperties.password) + token = api.login(context.scene.CoveToolProperties.username, context.scene.CoveToolProperties.password) if token: - bpy.context.scene.CoveToolProperties.token = token + context.scene.CoveToolProperties.token = token projects = api.get_request("projects") for project in projects: - new_project = bpy.context.scene.CoveToolProperties.projects.add() + new_project = context.scene.CoveToolProperties.projects.add() new_project.name = project["name"] new_project.run_set = project["run_set"][0] new_project.url = project["url"] @@ -36,10 +36,10 @@ class RunSimpleAnalysis(bpy.types.Operator): bl_label = "Run Simple Analysis" def execute(self, context): - simple_analysis = bpy.context.scene.CoveToolProperties.simple_analysis + simple_analysis = context.scene.CoveToolProperties.simple_analysis data = { - "run": bpy.context.scene.CoveToolProperties.projects[ - bpy.context.scene.CoveToolProperties.active_project_index + "run": context.scene.CoveToolProperties.projects[ + context.scene.CoveToolProperties.active_project_index ].run_set, "si_units": simple_analysis.si_units, "building_height": simple_analysis.building_height, @@ -84,10 +84,10 @@ class RunAnalysis(bpy.types.Operator): "roofs": [], "shading_devices": [], } - self.parse_objects() + self.parse_objects(context) data = { - "run": bpy.context.scene.CoveToolProperties.projects[ - bpy.context.scene.CoveToolProperties.active_project_index + "run": context.scene.CoveToolProperties.projects[ + context.scene.CoveToolProperties.active_project_index ].run_set, "source": "BlenderBIM", "rotation_angle": self.get_rotation_angle(), @@ -112,14 +112,14 @@ class RunAnalysis(bpy.types.Operator): rotation = 360 - rotation return rotation - def parse_objects(self): - for obj in bpy.context.visible_objects: + def parse_objects(self, context): + for obj in context.visible_objects: covetool_category = self.get_covetool_category(obj) if not covetool_category: continue if not self.has_triangulate_modifier(obj): obj.modifiers.new(name="Triangulate", type="TRIANGULATE") - mesh = obj.evaluated_get(bpy.context.evaluated_depsgraph_get()).to_mesh() + mesh = obj.evaluated_get(context.evaluated_depsgraph_get()).to_mesh() meshes = {} for polygon in mesh.polygons: normal = "{}|{}|{}".format( diff --git a/src/blenderbim/blenderbim/bim/module/debug/operator.py b/src/blenderbim/blenderbim/bim/module/debug/operator.py index c69bc8da50..ae5b76b472 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/operator.py +++ b/src/blenderbim/blenderbim/bim/module/debug/operator.py @@ -29,7 +29,7 @@ class PurgeIfcLinks(bpy.types.Operator): obj.data.BIMMeshProperties.ifc_definition_id = 0 for material in bpy.data.materials: material.BIMMaterialProperties.ifc_style_id = False - bpy.context.scene.BIMProperties.ifc_file = "" + context.scene.BIMProperties.ifc_file = "" IfcStore.purge() blenderbim.bim.handler.purge_module_data() return {"FINISHED"} @@ -57,7 +57,7 @@ class ProfileImportIFC(bpy.types.Operator): import pstats # For Windows - filepath = bpy.context.scene.BIMProperties.ifc_file.replace("\\", "\\\\") + filepath = context.scene.BIMProperties.ifc_file.replace("\\", "\\\\") cProfile.run(f"import bpy; bpy.ops.import_ifc.bim(filepath='{filepath}')", "blender.prof") p = pstats.Stats("blender.prof") @@ -102,9 +102,9 @@ class CreateShapeFromStepId(bpy.types.Operator): def _execute(self, context): logger = logging.getLogger("ImportIFC") - self.ifc_import_settings = import_ifc.IfcImportSettings.factory(bpy.context, IfcStore.path, logger) + self.ifc_import_settings = import_ifc.IfcImportSettings.factory(context, IfcStore.path, logger) self.file = IfcStore.get_file() - element = self.file.by_id(int(bpy.context.scene.BIMDebugProperties.step_id)) + element = self.file.by_id(int(context.scene.BIMDebugProperties.step_id)) settings = ifcopenshell.geom.settings() # settings.set(settings.INCLUDE_CURVES, True) shape = ifcopenshell.geom.create_shape(settings, element) @@ -112,7 +112,7 @@ class CreateShapeFromStepId(bpy.types.Operator): ifc_importer.file = self.file mesh = ifc_importer.create_mesh(element, shape) obj = bpy.data.objects.new("Debug", mesh) - bpy.context.scene.collection.objects.link(obj) + context.scene.collection.objects.link(obj) return {"FINISHED"} @@ -125,7 +125,7 @@ class SelectHighPolygonMeshes(bpy.types.Operator): results = {} for obj in bpy.data.objects: if not isinstance(obj.data, bpy.types.Mesh) or len(obj.data.polygons) < int( - bpy.context.scene.BIMDebugProperties.number_of_polygons + context.scene.BIMDebugProperties.number_of_polygons ): continue try: @@ -141,7 +141,7 @@ class RewindInspector(bpy.types.Operator): bl_label = "Rewind Inspector" def execute(self, context): - props = bpy.context.scene.BIMDebugProperties + props = context.scene.BIMDebugProperties total_breadcrumbs = len(props.step_id_breadcrumb) if total_breadcrumbs < 2: return {"FINISHED"} @@ -159,18 +159,18 @@ class InspectFromStepId(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() - bpy.context.scene.BIMDebugProperties.active_step_id = self.step_id - crumb = bpy.context.scene.BIMDebugProperties.step_id_breadcrumb.add() + context.scene.BIMDebugProperties.active_step_id = self.step_id + crumb = context.scene.BIMDebugProperties.step_id_breadcrumb.add() crumb.name = str(self.step_id) element = self.file.by_id(self.step_id) - while len(bpy.context.scene.BIMDebugProperties.attributes) > 0: - bpy.context.scene.BIMDebugProperties.attributes.remove(0) - while len(bpy.context.scene.BIMDebugProperties.inverse_attributes) > 0: - bpy.context.scene.BIMDebugProperties.inverse_attributes.remove(0) - while len(bpy.context.scene.BIMDebugProperties.inverse_references) > 0: - bpy.context.scene.BIMDebugProperties.inverse_references.remove(0) + while len(context.scene.BIMDebugProperties.attributes) > 0: + context.scene.BIMDebugProperties.attributes.remove(0) + while len(context.scene.BIMDebugProperties.inverse_attributes) > 0: + context.scene.BIMDebugProperties.inverse_attributes.remove(0) + while len(context.scene.BIMDebugProperties.inverse_references) > 0: + context.scene.BIMDebugProperties.inverse_references.remove(0) for key, value in element.get_info().items(): - self.add_attribute(bpy.context.scene.BIMDebugProperties.attributes, key, value) + self.add_attribute(context.scene.BIMDebugProperties.attributes, key, value) for key in dir(element): if ( not key[0].isalpha() @@ -179,9 +179,9 @@ class InspectFromStepId(bpy.types.Operator): or not getattr(element, key) ): continue - self.add_attribute(bpy.context.scene.BIMDebugProperties.inverse_attributes, key, getattr(element, key)) + self.add_attribute(context.scene.BIMDebugProperties.inverse_attributes, key, getattr(element, key)) for inverse in self.file.get_inverse(element): - new = bpy.context.scene.BIMDebugProperties.inverse_references.add() + new = context.scene.BIMDebugProperties.inverse_references.add() new.string_value = str(inverse) new.int_value = inverse.id() return {"FINISHED"} @@ -205,7 +205,7 @@ class InspectFromObject(bpy.types.Operator): bl_label = "Inspect From Object" def execute(self, context): - ifc_definition_id = bpy.context.active_object.BIMObjectProperties.ifc_definition_id + ifc_definition_id = context.active_object.BIMObjectProperties.ifc_definition_id if not ifc_definition_id: return {"FINISHED"} bpy.ops.bim.inspect_from_step_id(step_id=ifc_definition_id) diff --git a/src/blenderbim/blenderbim/bim/module/debug/ui.py b/src/blenderbim/blenderbim/bim/module/debug/ui.py index a7cd696c83..12d861df7f 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/ui.py +++ b/src/blenderbim/blenderbim/bim/module/debug/ui.py @@ -49,7 +49,7 @@ class BIM_PT_debug(Panel): row.operator("bim.rewind_inspector", icon="FRAME_PREV", text="") row.prop(props, "active_step_id", text="") row = layout.row(align=True) - row.operator("bim.inspect_from_step_id").step_id = bpy.context.scene.BIMDebugProperties.active_step_id + row.operator("bim.inspect_from_step_id").step_id = context.scene.BIMDebugProperties.active_step_id row.operator("bim.inspect_from_object") if props.attributes: diff --git a/src/blenderbim/blenderbim/bim/module/diff/operator.py b/src/blenderbim/blenderbim/bim/module/diff/operator.py index 811622eb3c..e932629ecc 100644 --- a/src/blenderbim/blenderbim/bim/module/diff/operator.py +++ b/src/blenderbim/blenderbim/bim/module/diff/operator.py @@ -13,7 +13,7 @@ class SelectDiffJsonFile(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.DiffProperties.diff_json_file = self.filepath + context.scene.DiffProperties.diff_json_file = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -29,9 +29,9 @@ class VisualiseDiff(bpy.types.Operator): def execute(self, context): #ifc_file = IfcStore.get_file() # In case we get from Store ifc_file = ifcopenshell.open(context.scene.DiffProperties.diff_new_file) # for Now refer to the new file - with open(bpy.context.scene.DiffProperties.diff_json_file, "r") as file: + with open(context.scene.DiffProperties.diff_json_file, "r") as file: diff = json.load(file) - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: obj.color = (1.0, 1.0, 1.0, 0.2) global_id = ifc_file.by_id(obj.BIMObjectProperties.ifc_definition_id).GlobalId if not global_id: @@ -42,7 +42,7 @@ class VisualiseDiff(bpy.types.Operator): obj.color = (0.0, 1.0, 0.0, 0.2) elif global_id.string_value in diff["changed"]: obj.color = (0.0, 0.0, 1.0, 0.2) - area = next(area for area in bpy.context.screen.areas if area.type == "VIEW_3D") + area = next(area for area in context.screen.areas if area.type == "VIEW_3D") area.spaces[0].shading.color_type = "OBJECT" return {"FINISHED"} @@ -54,7 +54,7 @@ class SelectDiffOldFile(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.DiffProperties.diff_old_file = self.filepath + context.scene.DiffProperties.diff_old_file = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -69,7 +69,7 @@ class SelectDiffNewFile(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.DiffProperties.diff_new_file = self.filepath + context.scene.DiffProperties.diff_new_file = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -93,12 +93,12 @@ class ExecuteIfcDiff(bpy.types.Operator): import ifcdiff ifc_diff = ifcdiff.IfcDiff( - bpy.context.scene.DiffProperties.diff_old_file, - bpy.context.scene.DiffProperties.diff_new_file, + context.scene.DiffProperties.diff_old_file, + context.scene.DiffProperties.diff_new_file, self.filepath, - bpy.context.scene.DiffProperties.diff_relationships.split(), + context.scene.DiffProperties.diff_relationships.split(), ) ifc_diff.diff() ifc_diff.export() - bpy.context.scene.DiffProperties.diff_json_file = self.filepath + context.scene.DiffProperties.diff_json_file = self.filepath return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/drawing/annotation.py b/src/blenderbim/blenderbim/bim/module/drawing/annotation.py index 7853d424aa..d2dd4b0f7d 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/annotation.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/annotation.py @@ -16,13 +16,13 @@ class Annotator: return float(sizes[str(size)]) @staticmethod - def add_text(related_element=None): + def add_text(context, related_element=None): curve = bpy.data.curves.new(type="FONT", name="Text") curve.body = "TEXT" obj = bpy.data.objects.new("Text", curve) - obj.matrix_world = bpy.context.scene.camera.matrix_world + obj.matrix_world = context.scene.camera.matrix_world if related_element is None: - location, _, _, _ = Annotator.get_placeholder_coords() + location, _, _, _ = Annotator.get_placeholder_coords(context) else: obj.data.BIMTextProperties.related_element = related_element location = related_element.location @@ -31,12 +31,12 @@ class Annotator: font = bpy.data.fonts.get("OpenGost TypeB TT") if not font: font = bpy.data.fonts.load( - os.path.join(bpy.context.scene.BIMProperties.data_dir, "fonts", "OpenGost Type B TT.ttf") + os.path.join(context.scene.BIMProperties.data_dir, "fonts", "OpenGost Type B TT.ttf") ) font.name = "OpenGost Type B TT" obj.data.font = font obj.data.BIMTextProperties.font_size = "2.5" - collection = bpy.context.scene.camera.users_collection[0] + collection = context.scene.camera.users_collection[0] collection.objects.link(obj) Annotator.resize_text(obj) return obj @@ -64,9 +64,9 @@ class Annotator: text_obj.data.size = font_size @staticmethod - def add_line_to_annotation(obj, co1=None, co2=None): + def add_line_to_annotation(obj, context, co1=None, co2=None): if co1 is None: - co1, co2, _, _ = Annotator.get_placeholder_coords() + co1, co2, _, _ = Annotator.get_placeholder_coords(context) co1 = obj.matrix_world.inverted() @ co1 co2 = obj.matrix_world.inverted() @ co2 if isinstance(obj.data, bpy.types.Mesh): @@ -83,8 +83,8 @@ class Annotator: return obj @staticmethod - def add_plane_to_annotation(obj): - co1, co2, co3, co4 = Annotator.get_placeholder_coords() + def add_plane_to_annotation(obj, context): + co1, co2, co3, co4 = Annotator.get_placeholder_coords(context) co1 = obj.matrix_world.inverted() @ co1 # bot left co2 = obj.matrix_world.inverted() @ co2 # top left co3 = obj.matrix_world.inverted() @ co3 # bot right @@ -132,8 +132,8 @@ class Annotator: return obj @staticmethod - def get_annotation_obj(name, data_type): - collection = bpy.context.scene.camera.users_collection[0] + def get_annotation_obj(name, data_type, context): + collection = context.scene.camera.users_collection[0] for obj in collection.objects: if name in obj.name: return obj @@ -148,13 +148,13 @@ class Annotator: return obj @staticmethod - def get_placeholder_coords(): - camera = bpy.context.scene.camera + def get_placeholder_coords(context): + camera = context.scene.camera z_offset = camera.matrix_world.to_quaternion() @ Vector((0, 0, -1)) - if bpy.context.scene.render.resolution_x > bpy.context.scene.render.resolution_y: + if context.scene.render.resolution_x > context.scene.render.resolution_y: y = ( camera.data.ortho_scale - * (bpy.context.scene.render.resolution_y / bpy.context.scene.render.resolution_x) + * (context.scene.render.resolution_y / context.scene.render.resolution_x) / 4 ) else: diff --git a/src/blenderbim/blenderbim/bim/module/drawing/operator.py b/src/blenderbim/blenderbim/bim/module/drawing/operator.py index 68152795a3..ee6ef0303d 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/operator.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/operator.py @@ -467,7 +467,7 @@ class AddAnnotation(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - if not bpy.context.scene.camera: + if not context.scene.camera: return {"FINISHED"} subcontext = ifcopenshell.util.representation.get_context( IfcStore.get_file(), "Plan", "Annotation", context.scene.camera.data.BIMCameraProperties.target_view @@ -475,17 +475,17 @@ class AddAnnotation(bpy.types.Operator): if not subcontext: return {"FINISHED"} if self.data_type == "text": - if bpy.context.selected_objects: - for selected_object in bpy.context.selected_objects: - obj = annotation.Annotator.add_text(related_element=selected_object) + if context.selected_objects: + for selected_object in context.selected_objects: + obj = annotation.Annotator.add_text(context, related_element=selected_object) else: - obj = annotation.Annotator.add_text() + obj = annotation.Annotator.add_text(context) else: - obj = annotation.Annotator.get_annotation_obj(self.obj_name, self.data_type) + obj = annotation.Annotator.get_annotation_obj(self.obj_name, self.data_type, context) if self.obj_name == "Break": - obj = annotation.Annotator.add_plane_to_annotation(obj) + obj = annotation.Annotator.add_plane_to_annotation(obj, context) else: - obj = annotation.Annotator.add_line_to_annotation(obj) + obj = annotation.Annotator.add_line_to_annotation(obj, context) if not obj.BIMObjectProperties.ifc_definition_id: bpy.ops.bim.assign_class(obj=obj.name, ifc_class="IfcAnnotation", context_id=subcontext.id()) @@ -695,10 +695,10 @@ class GenerateReferences(bpy.types.Operator): self.generate_grids() if self.camera.data.BIMCameraProperties.target_view == "ELEVATION_VIEW": self.generate_grids() - self.generate_levels() + self.generate_levels(context) if self.camera.data.BIMCameraProperties.target_view == "SECTION_VIEW": self.generate_grids() - self.generate_levels() + self.generate_levels(context) return {"FINISHED"} def filter_potential_references(self): @@ -714,7 +714,7 @@ class GenerateReferences(bpy.types.Operator): # TODO pass - def generate_levels(self): + def generate_levels(self, context): if self.camera.data.BIMCameraProperties.raster_x > self.camera.data.BIMCameraProperties.raster_y: width = self.camera.data.ortho_scale height = ( @@ -725,7 +725,7 @@ class GenerateReferences(bpy.types.Operator): width = ( height / self.camera.data.BIMCameraProperties.raster_y * self.camera.data.BIMCameraProperties.raster_x ) - level_obj = annotation.Annotator.get_annotation_obj("Section Level", "curve") + level_obj = annotation.Annotator.get_annotation_obj("Section Level", "curve", context) width_in_mm = width * 1000 if self.camera.data.BIMCameraProperties.diagram_scale == "CUSTOM": @@ -742,7 +742,7 @@ class GenerateReferences(bpy.types.Operator): projection = self.project_point_onto_camera(obj.location) co1 = self.camera.matrix_world @ Vector((width / 2 - (offset_percentage * width), projection[1], -1)) co2 = self.camera.matrix_world @ Vector((-(width / 2), projection[1], -1)) - annotation.Annotator.add_line_to_annotation(level_obj, co1, co2) + annotation.Annotator.add_line_to_annotation(level_obj, context, co1, co2) def project_point_onto_camera(self, point): projection = self.camera.matrix_world.to_quaternion() @ Vector((0, 0, -1)) diff --git a/src/blenderbim/blenderbim/bim/module/drawing/ui.py b/src/blenderbim/blenderbim/bim/module/drawing/ui.py index 81c04ed4cc..cd4212e926 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/ui.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/ui.py @@ -24,7 +24,7 @@ class BIM_PT_camera(Panel): return layout.use_property_split = True - dprops = bpy.context.scene.DocProperties + dprops = context.scene.DocProperties props = context.active_object.data.BIMCameraProperties col = layout.column(align=True) @@ -92,7 +92,7 @@ class BIM_PT_drawing_underlay(Panel): def draw(self, context): layout = self.layout layout.use_property_split = True - dprops = bpy.context.scene.DocProperties + dprops = context.scene.DocProperties props = context.active_object.data.BIMCameraProperties row = layout.row(align=True) @@ -142,7 +142,7 @@ class BIM_PT_drawings(Panel): def draw(self, context): layout = self.layout layout.use_property_split = True - props = bpy.context.scene.DocProperties + props = context.scene.DocProperties row = layout.row(align=True) row.operator("bim.add_drawing") @@ -175,7 +175,7 @@ class BIM_PT_schedules(Panel): def draw(self, context): layout = self.layout layout.use_property_split = True - props = bpy.context.scene.DocProperties + props = context.scene.DocProperties row = layout.row(align=True) row.operator("bim.add_schedule") @@ -200,7 +200,7 @@ class BIM_PT_sheets(Panel): def draw(self, context): layout = self.layout - props = bpy.context.scene.DocProperties + props = context.scene.DocProperties row = layout.row(align=True) row.prop(props, "titleblock", text="") @@ -315,7 +315,7 @@ class BIM_PT_annotation_utilities(Panel): op.obj_name = "Misc" op.data_type = "mesh" - props = bpy.context.scene.DocProperties + props = context.scene.DocProperties row = layout.row(align=True) row.operator("bim.add_drawing") diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 3a1d0a74d0..3d2be2b4d2 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -24,10 +24,10 @@ class EditObjectPlacement(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - objs = [bpy.data.objects.get(self.obj)] if self.obj else bpy.context.selected_objects + objs = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects self.file = IfcStore.get_file() # TODO: determine how to deal with this module dependency - props = bpy.context.scene.BIMGeoreferenceProperties + props = context.scene.BIMGeoreferenceProperties for obj in objs: if not obj.BIMObjectProperties.ifc_definition_id: continue @@ -69,7 +69,7 @@ class AddRepresentation(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() bpy.ops.bim.edit_object_placement(obj=obj.name) @@ -79,7 +79,7 @@ class AddRepresentation(bpy.types.Operator): product = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) - context_id = self.context_id or int(bpy.context.scene.BIMProperties.contexts) + context_id = self.context_id or int(context.scene.BIMProperties.contexts) context_of_items = self.file.by_id(context_id) gprop = context.scene.BIMGeoreferenceProperties @@ -164,7 +164,7 @@ class SwitchRepresentation(bpy.types.Operator): should_switch_all_meshes: bpy.props.BoolProperty() def execute(self, context): - self.element_obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + self.element_obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.oprops = self.element_obj.BIMObjectProperties self.file = IfcStore.get_file() @@ -175,7 +175,7 @@ class SwitchRepresentation(bpy.types.Operator): if mesh: self.switch_mesh(mesh) if not mesh or self.should_reload: - self.pull_mesh_from_ifc() + self.pull_mesh_from_ifc(context) return {"FINISHED"} def switch_mesh(self, mesh): @@ -193,9 +193,9 @@ class SwitchRepresentation(bpy.types.Operator): return self.resolve_mapped_representation(representation.Items[0].MappingSource.MappedRepresentation) return representation - def pull_mesh_from_ifc(self): + def pull_mesh_from_ifc(self, context): logger = logging.getLogger("ImportIFC") - ifc_import_settings = import_ifc.IfcImportSettings.factory(bpy.context, IfcStore.path, logger) + ifc_import_settings = import_ifc.IfcImportSettings.factory(context, IfcStore.path, logger) element = self.file.by_id(self.oprops.ifc_definition_id) settings = ifcopenshell.geom.settings() @@ -247,7 +247,7 @@ class RemoveRepresentation(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() representation = self.file.by_id(self.representation_id) - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object is_mapped_representation = representation.RepresentationType == "MappedRepresentation" if is_mapped_representation: mesh_name = "{}/{}".format( @@ -288,7 +288,7 @@ class UpdateRepresentation(bpy.types.Operator): if not ContextData.is_loaded: ContextData.load(IfcStore.get_file()) - objs = [bpy.data.objects.get(self.obj)] if self.obj else bpy.context.selected_objects + objs = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects self.file = IfcStore.get_file() for obj in objs: @@ -371,7 +371,7 @@ class UpdateParametricRepresentation(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() - obj = bpy.context.active_object + obj = context.active_object props = obj.data.BIMMeshProperties parameter = props.ifc_parameters[self.index] element = IfcStore.get_file().by_id(parameter.step_id)[parameter.index] = parameter.value @@ -388,7 +388,7 @@ class GetRepresentationIfcParameters(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() - obj = bpy.context.active_object + obj = context.active_object props = obj.data.BIMMeshProperties elements = IfcStore.get_file().traverse(IfcStore.get_file().by_id(props.ifc_definition_id)) for element in elements: diff --git a/src/blenderbim/blenderbim/bim/module/geometry/ui.py b/src/blenderbim/blenderbim/bim/module/geometry/ui.py index 0dd608b4e9..ee387ab8f9 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/ui.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/ui.py @@ -30,7 +30,7 @@ class BIM_PT_representations(Panel): layout.label(text="No representations found") row = layout.row(align=True) - row.prop(bpy.context.scene.BIMProperties, "contexts", text="") + row.prop(context.scene.BIMProperties, "contexts", text="") row.operator("bim.add_representation", icon="ADD", text="") for ifc_definition_id in representations: diff --git a/src/blenderbim/blenderbim/bim/module/georeference/operator.py b/src/blenderbim/blenderbim/bim/module/georeference/operator.py index bafe90b113..22a883db5b 100644 --- a/src/blenderbim/blenderbim/bim/module/georeference/operator.py +++ b/src/blenderbim/blenderbim/bim/module/georeference/operator.py @@ -276,7 +276,7 @@ class ConvertLocalToGlobal(bpy.types.Operator): results = (x, y, z) props.coordinate_output = ",".join([str(r) for r in results]) - bpy.context.scene.cursor.location = results + context.scene.cursor.location = results return {"FINISHED"} @@ -322,7 +322,7 @@ class ConvertGlobalToLocal(bpy.types.Operator): props.coordinate_output = ",".join([str(r) for r in results]) scale = ifcopenshell.util.unit.calculate_unit_scale(IfcStore.get_file()) - bpy.context.scene.cursor.location = [o * scale for o in results] + context.scene.cursor.location = [o * scale for o in results] return {"FINISHED"} @@ -334,7 +334,7 @@ class GetCursorLocation(bpy.types.Operator): def execute(self, context): props = context.scene.BIMGeoreferenceProperties scale = ifcopenshell.util.unit.calculate_unit_scale(IfcStore.get_file()) - project_coordinates = [o / scale for o in bpy.context.scene.cursor.location] + project_coordinates = [o / scale for o in context.scene.cursor.location] props.coordinate_input = ",".join([str(o) for o in project_coordinates]) return {"FINISHED"} @@ -347,5 +347,5 @@ class SetCursorLocation(bpy.types.Operator): def execute(self, context): props = context.scene.BIMGeoreferenceProperties scale = ifcopenshell.util.unit.calculate_unit_scale(IfcStore.get_file()) - bpy.context.scene.cursor.location = [float(co) * scale for co in props.coordinate_output.split(",")] + context.scene.cursor.location = [float(co) * scale for co in props.coordinate_output.split(",")] return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/group/operator.py b/src/blenderbim/blenderbim/bim/module/group/operator.py index 3b7ed59b70..76f2f245a4 100644 --- a/src/blenderbim/blenderbim/bim/module/group/operator.py +++ b/src/blenderbim/blenderbim/bim/module/group/operator.py @@ -186,7 +186,7 @@ class SelectGroupProducts(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: obj.select_set(False) if not obj.BIMObjectProperties.ifc_definition_id: continue diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index 45d5a2f21c..506bb2cd5e 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -23,7 +23,7 @@ class AssignParameterizedProfile(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() profile = ifcopenshell.api.run( "profile.add_parameterized_profile", @@ -51,7 +51,7 @@ class AddMaterial(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.materials.get(self.obj) if self.obj else bpy.context.active_object.active_material + obj = bpy.data.materials.get(self.obj) if self.obj else context.active_object.active_material self.file = IfcStore.get_file() result = ifcopenshell.api.run("material.add_material", self.file, **{"name": obj.name}) IfcStore.link_element(result, obj) @@ -82,7 +82,7 @@ class RemoveMaterial(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.materials.get(self.obj) if self.obj else bpy.context.active_object.active_material + obj = bpy.data.materials.get(self.obj) if self.obj else context.active_object.active_material self.file = IfcStore.get_file() result = ifcopenshell.api.run( "material.remove_material", @@ -105,7 +105,7 @@ class AssignMaterial(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object material_type = self.material_type or obj.BIMObjectMaterialProperties.material_type self.file = IfcStore.get_file() element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) @@ -150,7 +150,7 @@ class UnassignMaterial(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "material.unassign_material", @@ -172,7 +172,7 @@ class AddConstituent(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "material.add_constituent", @@ -197,7 +197,7 @@ class RemoveConstituent(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "material.remove_constituent", self.file, **{"constituent": self.file.by_id(self.constituent)} @@ -217,7 +217,7 @@ class AddProfile(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "material.add_profile", @@ -243,7 +243,7 @@ class RemoveProfile(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run("material.remove_profile", self.file, **{"profile": self.file.by_id(self.profile)}) Data.load_profiles() @@ -262,7 +262,7 @@ class AddLayer(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "material.add_layer", @@ -289,7 +289,7 @@ class ReorderMaterialSetItem(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() material_set = self.file.by_id(self.material_set) ifcopenshell.api.run( @@ -324,7 +324,7 @@ class RemoveLayer(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run("material.remove_layer", self.file, **{"layer": self.file.by_id(self.layer)}) Data.load_layers() @@ -342,7 +342,7 @@ class AddListItem(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "material.add_list_item", @@ -368,7 +368,7 @@ class RemoveListItem(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "material.remove_list_item", @@ -389,7 +389,7 @@ class EnableEditingAssignedMaterial(bpy.types.Operator): obj: bpy.props.StringProperty() def execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object props = obj.BIMObjectMaterialProperties props.is_editing = True product_data = Data.products[obj.BIMObjectProperties.ifc_definition_id] @@ -477,7 +477,7 @@ class DisableEditingAssignedMaterial(bpy.types.Operator): obj: bpy.props.StringProperty() def execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object props = obj.BIMObjectMaterialProperties props.is_editing = False return {"FINISHED"} @@ -496,7 +496,7 @@ class EditAssignedMaterial(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object props = obj.BIMObjectMaterialProperties product_data = Data.products[obj.BIMObjectProperties.ifc_definition_id] @@ -575,7 +575,7 @@ class EnableEditingMaterialSetItem(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.props = obj.BIMObjectMaterialProperties self.props.active_material_set_item_id = self.material_set_item product_data = Data.products[obj.BIMObjectProperties.ifc_definition_id] @@ -667,7 +667,7 @@ class DisableEditingMaterialSetItem(bpy.types.Operator): obj: bpy.props.StringProperty() def execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object props = obj.BIMObjectMaterialProperties props.active_material_set_item_id = 0 return {"FINISHED"} @@ -684,7 +684,7 @@ class EditMaterialSetItem(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() props = obj.BIMObjectMaterialProperties product_data = Data.products[obj.BIMObjectProperties.ifc_definition_id] diff --git a/src/blenderbim/blenderbim/bim/module/model/door.py b/src/blenderbim/blenderbim/bim/module/model/door.py index 3ff27af14a..9c4a7f7935 100644 --- a/src/blenderbim/blenderbim/bim/module/model/door.py +++ b/src/blenderbim/blenderbim/bim/module/model/door.py @@ -82,7 +82,7 @@ def add_object(self, context): obj = bpy.data.objects.new("Door Profile", mesh) context.view_layer.active_layer_collection.collection.objects.link(obj) - bpy.context.view_layer.objects.active = obj + context.view_layer.objects.active = obj obj.select_set(True) bpy.ops.object.convert(target="CURVE") @@ -100,7 +100,7 @@ def add_object(self, context): obj2 = bpy.data.objects.new("Door", mesh) context.view_layer.active_layer_collection.collection.objects.link(obj2) - bpy.context.view_layer.objects.active = obj2 + context.view_layer.objects.active = obj2 obj2.select_set(True) bpy.ops.object.convert(target="CURVE") @@ -130,11 +130,11 @@ def add_object(self, context): modifier.thickness = self.overall_height - 0.045 context.view_layer.active_layer_collection.collection.objects.link(obj3) - bpy.context.view_layer.objects.active = obj3 + context.view_layer.objects.active = obj3 obj3.select_set(True) bpy.ops.object.convert(target="MESH") - ctx = bpy.context.copy() + ctx = context.copy() ctx["active_object"] = obj2 ctx["selected_editable_objects"] = [obj2, obj3] bpy.ops.object.join(ctx) @@ -156,7 +156,7 @@ def add_object(self, context): modifier.thickness = self.overall_height + 0.1 context.view_layer.active_layer_collection.collection.objects.link(obj4) - bpy.context.view_layer.objects.active = obj4 + context.view_layer.objects.active = obj4 obj4.select_set(True) bpy.ops.object.convert(target="MESH") diff --git a/src/blenderbim/blenderbim/bim/module/model/grid.py b/src/blenderbim/blenderbim/bim/module/model/grid.py index 28a4e18626..78c2e0bdff 100644 --- a/src/blenderbim/blenderbim/bim/module/model/grid.py +++ b/src/blenderbim/blenderbim/bim/module/model/grid.py @@ -12,7 +12,7 @@ def add_object(self, context): collection = bpy.data.collections.new(obj.name) has_site_collection = False - for child in bpy.context.view_layer.layer_collection.children: + for child in context.view_layer.layer_collection.children: if "IfcProject/" not in child.name: continue for grandchild in child.children: @@ -22,7 +22,7 @@ def add_object(self, context): grandchild.collection.children.link(collection) break if not has_site_collection: - bpy.context.view_layer.active_layer_collection.collection.children.link(collection) + context.view_layer.active_layer_collection.collection.children.link(collection) collection.objects.link(obj) self.file = IfcStore.get_file() diff --git a/src/blenderbim/blenderbim/bim/module/model/product.py b/src/blenderbim/blenderbim/bim/module/model/product.py index b1909fd9ff..b23c5ac4a3 100644 --- a/src/blenderbim/blenderbim/bim/module/model/product.py +++ b/src/blenderbim/blenderbim/bim/module/model/product.py @@ -64,7 +64,7 @@ class AddTypeInstance(bpy.types.Operator): mesh.from_pydata(verts, edges, faces) obj = bpy.data.objects.new("Instance", mesh) obj.location = context.scene.cursor.location - collection = bpy.context.view_layer.active_layer_collection.collection + collection = context.view_layer.active_layer_collection.collection collection.objects.link(obj) collection_obj = bpy.data.objects.get(collection.name) bpy.ops.bim.assign_class(obj=obj.name, ifc_class=instance_class) @@ -97,8 +97,8 @@ class AlignProduct(bpy.types.Operator): active_y_axis = context.active_object.matrix_world.to_quaternion() @ Vector((0, 1, 0)) active_z_axis = context.active_object.matrix_world.to_quaternion() @ Vector((0, 0, 1)) - x_distances = self.get_axis_distances(point, active_x_axis) - y_distances = self.get_axis_distances(point, active_y_axis) + x_distances = self.get_axis_distances(point, active_x_axis, context) + y_distances = self.get_axis_distances(point, active_y_axis, context) if abs(sum(x_distances)) < abs(sum(y_distances)): for i, obj in enumerate(selected_objs): obj.matrix_world = Matrix.Translation(active_x_axis * -x_distances[i]) @ obj.matrix_world @@ -107,9 +107,9 @@ class AlignProduct(bpy.types.Operator): obj.matrix_world = Matrix.Translation(active_y_axis * -y_distances[i]) @ obj.matrix_world return {"FINISHED"} - def get_axis_distances(self, point, axis): + def get_axis_distances(self, point, axis, context): results = [] - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if self.align_type == "CENTERLINE": obj_point = obj.matrix_world @ (Vector(obj.bound_box[0]) + (obj.dimensions / 2)) elif self.align_type == "POSITIVE": diff --git a/src/blenderbim/blenderbim/bim/module/model/slab.py b/src/blenderbim/blenderbim/bim/module/model/slab.py index 9aefba63c7..d716f0c0a8 100644 --- a/src/blenderbim/blenderbim/bim/module/model/slab.py +++ b/src/blenderbim/blenderbim/bim/module/model/slab.py @@ -218,7 +218,7 @@ class AddSlabOpening(bpy.types.Operator): if not raycast[0]: return {"FINISHED"} bpy.ops.mesh.primitive_cube_add(size=slab_obj.dimensions[2] * 2) - opening = bpy.context.selected_objects[0] + opening = context.selected_objects[0] # Place the opening in the middle of the slab global_location = slab_obj.matrix_world @ raycast[1] diff --git a/src/blenderbim/blenderbim/bim/module/model/window.py b/src/blenderbim/blenderbim/bim/module/model/window.py index 938573eb8b..ba491f4413 100644 --- a/src/blenderbim/blenderbim/bim/module/model/window.py +++ b/src/blenderbim/blenderbim/bim/module/model/window.py @@ -67,7 +67,7 @@ def add_object(self, context): obj = bpy.data.objects.new("Window Profile", mesh) context.view_layer.active_layer_collection.collection.objects.link(obj) - bpy.context.view_layer.objects.active = obj + context.view_layer.objects.active = obj obj.select_set(True) bpy.ops.object.convert(target="CURVE") @@ -85,7 +85,7 @@ def add_object(self, context): obj2 = bpy.data.objects.new("Window", mesh) context.view_layer.active_layer_collection.collection.objects.link(obj2) - bpy.context.view_layer.objects.active = obj2 + context.view_layer.objects.active = obj2 obj2.select_set(True) bpy.ops.object.convert(target="CURVE") obj2.data.splines[0].use_cyclic_u = True @@ -116,11 +116,11 @@ def add_object(self, context): modifier.thickness = self.overall_height - 0.08 context.view_layer.active_layer_collection.collection.objects.link(obj3) - bpy.context.view_layer.objects.active = obj3 + context.view_layer.objects.active = obj3 obj3.select_set(True) bpy.ops.object.convert(target="MESH") - ctx = bpy.context.copy() + ctx = context.copy() ctx["active_object"] = obj2 ctx["selected_editable_objects"] = [obj2, obj3] bpy.ops.object.join(ctx) @@ -142,7 +142,7 @@ def add_object(self, context): modifier.thickness = self.overall_height context.view_layer.active_layer_collection.collection.objects.link(obj4) - bpy.context.view_layer.objects.active = obj4 + context.view_layer.objects.active = obj4 obj4.select_set(True) bpy.ops.object.convert(target="MESH") obj4.display_type = "WIRE" diff --git a/src/blenderbim/blenderbim/bim/module/owner/ui.py b/src/blenderbim/blenderbim/bim/module/owner/ui.py index d47cc605e5..e4ea5c943d 100644 --- a/src/blenderbim/blenderbim/bim/module/owner/ui.py +++ b/src/blenderbim/blenderbim/bim/module/owner/ui.py @@ -4,8 +4,8 @@ from ifcopenshell.api.owner.data import Data from blenderbim.bim.ifc import IfcStore -def draw_roles_ui(box, assigned_object_id, roles): - props = bpy.context.scene.BIMOwnerProperties +def draw_roles_ui(box, assigned_object_id, roles, context): + props = context.scene.BIMOwnerProperties row = box.row(align=True) row.label(text="Roles") row.operator("bim.add_role", icon="ADD", text="").assigned_object_id = assigned_object_id @@ -30,8 +30,8 @@ def draw_roles_ui(box, assigned_object_id, roles): row.operator("bim.remove_role", icon="X", text="").role_id = role_id -def draw_addresses_ui(box, assigned_object_id, addresses, file): - props = bpy.context.scene.BIMOwnerProperties +def draw_addresses_ui(box, assigned_object_id, addresses, file, context): + props = context.scene.BIMOwnerProperties row = box.row(align=True) row.label(text="Addresses") op = row.operator("bim.add_address", icon="LINK_BLEND", text="") @@ -135,8 +135,8 @@ class BIM_PT_people(Panel): row = box.row() row.prop(blender_person, "suffix_titles") - draw_roles_ui(box, person_id, person["Roles"]) - draw_addresses_ui(box, person_id, person["Addresses"], self.file) + draw_roles_ui(box, person_id, person["Roles"], context) + draw_addresses_ui(box, person_id, person["Addresses"], self.file, context) else: row = self.layout.row(align=True) name = person["Id"] if self.file.schema == "IFC2X3" else person["Identification"] @@ -189,8 +189,8 @@ class BIM_PT_organisations(Panel): row = box.row() row.prop(blender_organisation, "description") - draw_roles_ui(box, organisation_id, organisation["Roles"]) - draw_addresses_ui(box, organisation_id, organisation["Addresses"], self.file) + draw_roles_ui(box, organisation_id, organisation["Roles"], context) + draw_addresses_ui(box, organisation_id, organisation["Addresses"], self.file, context) else: row = self.layout.row(align=True) row.label(text=organisation["Name"]) diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index 24ced30679..15401996ae 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -29,7 +29,7 @@ class CreateProject(bpy.types.Operator): return {"FINISHED"} IfcStore.file = ifcopenshell.api.run( - "project.create_file", **{"version": bpy.context.scene.BIMProperties.export_schema} + "project.create_file", **{"version": context.scene.BIMProperties.export_schema} ) self.file = IfcStore.get_file() @@ -49,7 +49,7 @@ class CreateProject(bpy.types.Operator): bpy.ops.bim.add_subcontext(context="Plan") bpy.ops.bim.add_subcontext(context="Plan", subcontext="Annotation", target_view="PLAN_VIEW") - bpy.context.scene.BIMProperties.contexts = str( + context.scene.BIMProperties.contexts = str( ifcopenshell.util.representation.get_context(self.file, "Model", "Body", "MODEL_VIEW").id() ) @@ -97,7 +97,7 @@ class CreateProjectLibrary(bpy.types.Operator): return {"FINISHED"} IfcStore.file = ifcopenshell.api.run( - "project.create_file", **{"version": bpy.context.scene.BIMProperties.export_schema} + "project.create_file", **{"version": context.scene.BIMProperties.export_schema} ) self.file = IfcStore.get_file() @@ -326,14 +326,14 @@ class AppendLibraryElement(bpy.types.Operator): library=IfcStore.library_file, element=IfcStore.library_file.by_id(self.definition), ) - self.import_type_from_ifc(element) + self.import_type_from_ifc(element, context) blenderbim.bim.handler.purge_module_data() return {"FINISHED"} - def import_type_from_ifc(self, element): + def import_type_from_ifc(self, element, context): self.file = IfcStore.get_file() logger = logging.getLogger("ImportIFC") - ifc_import_settings = import_ifc.IfcImportSettings.factory(bpy.context, IfcStore.path, logger) + ifc_import_settings = import_ifc.IfcImportSettings.factory(context, IfcStore.path, logger) type_collection = bpy.data.collections.get("Types") if not type_collection: diff --git a/src/blenderbim/blenderbim/bim/module/pset/operator.py b/src/blenderbim/blenderbim/bim/module/pset/operator.py index 1ff24e51f0..58ec1d64fd 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/operator.py +++ b/src/blenderbim/blenderbim/bim/module/pset/operator.py @@ -16,7 +16,7 @@ class TogglePsetExpansion(bpy.types.Operator): pset_id: bpy.props.IntProperty() def execute(self, context): - obj = bpy.context.active_object + obj = context.active_object data = Data.psets if self.pset_id in Data.psets else Data.qtos data[self.pset_id]["is_expanded"] = not data[self.pset_id]["is_expanded"] return {"FINISHED"} @@ -295,7 +295,7 @@ class AddQto(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() - obj = bpy.context.active_object + obj = context.active_object oprops = obj.BIMObjectProperties props = obj.PsetProperties ifcopenshell.api.run( @@ -318,23 +318,23 @@ class GuessQuantity(bpy.types.Operator): def execute(self, context): self.qto_calculator = QtoCalculator() - obj = bpy.context.active_object + obj = context.active_object prop = obj.PsetProperties.properties.get(self.prop) - prop.float_value = self.guess_quantity(obj) + prop.float_value = self.guess_quantity(obj, context) return {"FINISHED"} - def guess_quantity(self, obj): + def guess_quantity(self, obj, context): quantity = self.qto_calculator.guess_quantity(self.prop, [p.name for p in obj.PsetProperties.properties], obj) if "area" in self.prop.lower(): - if bpy.context.scene.BIMProperties.area_unit: - prefix, name = self.get_prefix_name(bpy.context.scene.BIMProperties.area_unit) + if context.scene.BIMProperties.area_unit: + prefix, name = self.get_prefix_name(context.scene.BIMProperties.area_unit) quantity = ifcopenshell.util.unit.convert(quantity, None, "SQUARE_METRE", prefix, name) elif "volume" in self.prop.lower(): - if bpy.context.scene.BIMProperties.volume_unit: - prefix, name = self.get_prefix_name(bpy.context.scene.BIMProperties.volume_unit) + if context.scene.BIMProperties.volume_unit: + prefix, name = self.get_prefix_name(context.scene.BIMProperties.volume_unit) quantity = ifcopenshell.util.unit.convert(quantity, None, "CUBIC_METRE", prefix, name) else: - prefix, name = self.get_blender_prefix_name() + prefix, name = self.get_blender_prefix_name(context) quantity = ifcopenshell.util.unit.convert(quantity, None, "METRE", prefix, name) return round(quantity, 3) @@ -343,13 +343,14 @@ class GuessQuantity(bpy.types.Operator): return value.split("/") return None, value - def get_blender_prefix_name(self): - if bpy.context.scene.unit_settings.system == "IMPERIAL": - if bpy.context.scene.unit_settings.length_unit == "INCHES": + def get_blender_prefix_name(self, context): + unit_settings = context.scene.unit_settings + if unit_settings.system == "IMPERIAL": + if unit_settings.length_unit == "INCHES": return None, "inch" - elif bpy.context.scene.unit_settings.length_unit == "FEET": + elif unit_settings.length_unit == "FEET": return None, "foot" - elif bpy.context.scene.unit_settings.system == "METRIC": - if bpy.context.scene.unit_settings.length_unit == "METERS": + elif unit_settings.system == "METRIC": + if unit_settings.length_unit == "METERS": return None, "METRE" - return bpy.context.scene.unit_settings.length_unit[0 : -len("METERS")], "METRE" + return unit_settings.length_unit[0 : -len("METERS")], "METRE" diff --git a/src/blenderbim/blenderbim/bim/module/qto/helper.py b/src/blenderbim/blenderbim/bim/module/qto/helper.py index b55992bf00..56ff71b73a 100644 --- a/src/blenderbim/blenderbim/bim/module/qto/helper.py +++ b/src/blenderbim/blenderbim/bim/module/qto/helper.py @@ -14,7 +14,7 @@ def calculate_volume(obj): return result -def calculate_formwork_area(objs): +def calculate_formwork_area(objs, context): """ Formwork is defined as the surface area required to cover all exposed surfaces of one or more objects, excluding top surfaces (i.e. that have a @@ -27,7 +27,7 @@ def calculate_formwork_area(objs): new_obj = obj.copy() new_obj.data = obj.data.copy() new_obj.animation_data_clear() - bpy.context.collection.objects.link(new_obj) + context.collection.objects.link(new_obj) copied_objs.append(new_obj) context_override = {} @@ -53,7 +53,7 @@ def calculate_formwork_area(objs): else: modifier.octree_depth = 5 - mesh = copied_objs[0].evaluated_get(bpy.context.evaluated_depsgraph_get()).to_mesh() + mesh = copied_objs[0].evaluated_get(context.evaluated_depsgraph_get()).to_mesh() for polygon in mesh.polygons: if polygon.normal.z > 0.5: continue diff --git a/src/blenderbim/blenderbim/bim/module/qto/operator.py b/src/blenderbim/blenderbim/bim/module/qto/operator.py index 02d1f32916..ef6b12268c 100644 --- a/src/blenderbim/blenderbim/bim/module/qto/operator.py +++ b/src/blenderbim/blenderbim/bim/module/qto/operator.py @@ -14,13 +14,13 @@ class CalculateEdgeLengths(bpy.types.Operator): def execute(self, context): result = 0 - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if not obj.data or not obj.data.edges: continue for edge in obj.data.edges: if edge.select: result += (obj.data.vertices[edge.vertices[1]].co - obj.data.vertices[edge.vertices[0]].co).length - bpy.context.scene.BIMQtoProperties.qto_result = str(round(result, 3)) + context.scene.BIMQtoProperties.qto_result = str(round(result, 3)) return {"FINISHED"} @@ -31,13 +31,13 @@ class CalculateFaceAreas(bpy.types.Operator): def execute(self, context): result = 0 - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if not obj.data or not obj.data.polygons: continue for polygon in obj.data.polygons: if polygon.select: result += polygon.area - bpy.context.scene.BIMQtoProperties.qto_result = str(round(result, 3)) + context.scene.BIMQtoProperties.qto_result = str(round(result, 3)) return {"FINISHED"} @@ -48,14 +48,14 @@ class CalculateObjectVolumes(bpy.types.Operator): def execute(self, context): result = 0 - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if not obj.data or not isinstance(obj.data, bpy.types.Mesh): continue bm = bmesh.new() bm.from_mesh(obj.data) result += bm.calc_volume() bm.free() - bpy.context.scene.BIMQtoProperties.qto_result = str(round(result, 3)) + context.scene.BIMQtoProperties.qto_result = str(round(result, 3)) return {"FINISHED"} @@ -65,16 +65,16 @@ class ExecuteQtoMethod(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - props = bpy.context.scene.BIMQtoProperties + props = context.scene.BIMQtoProperties result = 0 if props.qto_methods == "HEIGHT": - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: result += helper.calculate_height(obj) elif props.qto_methods == "VOLUME": - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: result += helper.calculate_volume(obj) elif props.qto_methods == "FORMWORK": - result = helper.calculate_formwork_area(bpy.context.selected_objects) + result = helper.calculate_formwork_area(context.selected_objects, context) props.qto_result = str(round(result, 3)) return {"FINISHED"} @@ -88,9 +88,9 @@ class QuantifyObjects(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - props = bpy.context.scene.BIMQtoProperties + props = context.scene.BIMQtoProperties self.file = IfcStore.get_file() - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue result = 0 @@ -99,7 +99,7 @@ class QuantifyObjects(bpy.types.Operator): elif props.qto_methods == "VOLUME": result = helper.calculate_volume(obj) elif props.qto_methods == "FORMWORK": - result = helper.calculate_formwork_area([obj]) + result = helper.calculate_formwork_area([obj], context) if not result: continue result = round(result, 3) diff --git a/src/blenderbim/blenderbim/bim/module/resource/operator.py b/src/blenderbim/blenderbim/bim/module/resource/operator.py index 4872ee151f..03835444dd 100644 --- a/src/blenderbim/blenderbim/bim/module/resource/operator.py +++ b/src/blenderbim/blenderbim/bim/module/resource/operator.py @@ -230,7 +230,7 @@ class AssignResource(bpy.types.Operator): def _execute(self, context): related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] if self.related_object else context.selected_objects ) for related_object in related_objects: self.file = IfcStore.get_file() @@ -253,7 +253,7 @@ class UnassignResource(bpy.types.Operator): def execute(self, context): related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] if self.related_object else context.selected_objects ) for related_object in related_objects: self.file = IfcStore.get_file() diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index 91c7816f36..f67b472151 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -15,10 +15,10 @@ class EnableReassignClass(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - obj = bpy.context.active_object + obj = context.active_object self.file = IfcStore.get_file() ifc_class = obj.name.split("/")[0] - bpy.context.active_object.BIMObjectProperties.is_reassigning_class = True + context.active_object.BIMObjectProperties.is_reassigning_class = True ifc_products = [ "IfcElement", "IfcElementType", @@ -31,11 +31,11 @@ class EnableReassignClass(bpy.types.Operator): ] for ifc_product in ifc_products: if ifcopenshell.util.schema.is_a(IfcStore.get_schema().declaration_by_name(ifc_class), ifc_product): - bpy.context.scene.BIMRootProperties.ifc_product = ifc_product + context.scene.BIMRootProperties.ifc_product = ifc_product element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) - bpy.context.scene.BIMRootProperties.ifc_class = element.is_a() + context.scene.BIMRootProperties.ifc_class = element.is_a() if hasattr(element, "PredefinedType") and element.PredefinedType: - bpy.context.scene.BIMRootProperties.ifc_predefined_type = element.PredefinedType + context.scene.BIMRootProperties.ifc_predefined_type = element.PredefinedType return {"FINISHED"} @@ -45,7 +45,7 @@ class DisableReassignClass(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - bpy.context.active_object.BIMObjectProperties.is_reassigning_class = False + context.active_object.BIMObjectProperties.is_reassigning_class = False return {"FINISHED"} @@ -59,18 +59,18 @@ class ReassignClass(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - objects = [bpy.data.objects.get(self.obj)] if self.obj else bpy.context.selected_objects + objects = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects self.file = IfcStore.get_file() - predefined_type = bpy.context.scene.BIMRootProperties.ifc_predefined_type + predefined_type = context.scene.BIMRootProperties.ifc_predefined_type if predefined_type == "USERDEFINED": - predefined_type = bpy.context.scene.BIMRootProperties.ifc_userdefined_type + predefined_type = context.scene.BIMRootProperties.ifc_userdefined_type for obj in objects: product = ifcopenshell.api.run( "root.reassign_class", self.file, **{ "product": self.file.by_id(obj.BIMObjectProperties.ifc_definition_id), - "ifc_class": bpy.context.scene.BIMRootProperties.ifc_class, + "ifc_class": context.scene.BIMRootProperties.ifc_class, "predefined_type": predefined_type, }, ) @@ -96,7 +96,7 @@ class AssignClass(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - objects = [bpy.data.objects.get(self.obj)] if self.obj else bpy.context.selected_objects + objects = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects self.file = IfcStore.get_file() self.declaration = IfcStore.get_schema().declaration_by_name(self.ifc_class) if self.predefined_type == "USERDEFINED": @@ -128,22 +128,22 @@ class AssignClass(bpy.types.Operator): ) if product.is_a("IfcElementType"): - self.place_in_types_collection(obj) + self.place_in_types_collection(obj, context) elif product.is_a("IfcOpeningElement"): - self.place_in_openings_collection(obj) + self.place_in_openings_collection(obj, context) elif ( product.is_a("IfcSpatialElement") or product.is_a("IfcSpatialStructureElement") or product.is_a("IfcProject") or product.is_a("IfcContext") ): - self.place_in_spatial_collection(obj) + self.place_in_spatial_collection(obj, context) else: self.assign_potential_spatial_container(obj) context.view_layer.objects.active = obj - def place_in_types_collection(self, obj): - for project in [c for c in bpy.context.view_layer.layer_collection.children if "IfcProject" in c.name]: + def place_in_types_collection(self, obj, context): + for project in [c for c in context.view_layer.layer_collection.children if "IfcProject" in c.name]: if not [c for c in project.children if "Types" in c.name]: types = bpy.data.collections.new("Types") project.collection.children.link(types) @@ -154,8 +154,8 @@ class AssignClass(bpy.types.Operator): break break - def place_in_openings_collection(self, obj): - for project in [c for c in bpy.context.view_layer.layer_collection.children if "IfcProject" in c.name]: + def place_in_openings_collection(self, obj, context): + for project in [c for c in context.view_layer.layer_collection.children if "IfcProject" in c.name]: if not [c for c in project.children if "IfcOpeningElements" in c.name]: opening_elements = bpy.data.collections.new("IfcOpeningElements") project.collection.children.link(opening_elements) @@ -166,7 +166,7 @@ class AssignClass(bpy.types.Operator): break break - def place_in_spatial_collection(self, obj): + def place_in_spatial_collection(self, obj, context): for collection in obj.users_collection: if collection.name == obj.name: return @@ -181,7 +181,7 @@ class AssignClass(bpy.types.Operator): parent_collection.children.link(collection) bpy.ops.bim.assign_object(related_object=obj.name, relating_object=parent_collection.name) else: - bpy.context.scene.collection.children.link(collection) + context.scene.collection.children.link(collection) def assign_potential_spatial_container(self, obj): for collection in obj.users_collection: @@ -209,7 +209,7 @@ class UnassignClass(bpy.types.Operator): if self.obj: objects = [bpy.data.objects.get(self.obj)] else: - objects = bpy.context.selected_objects + objects = context.selected_objects for obj in objects: if not obj.BIMObjectProperties.ifc_definition_id: continue @@ -252,7 +252,7 @@ class UnlinkObject(bpy.types.Operator): if self.obj: objects = [bpy.data.objects.get(self.obj)] else: - objects = bpy.context.selected_objects + objects = context.selected_objects for obj in objects: if obj.BIMObjectProperties.ifc_definition_id: IfcStore.unlink_element(obj=obj) @@ -275,7 +275,7 @@ class CopyClass(bpy.types.Operator): if self.obj: objects = [bpy.data.objects.get(self.obj)] else: - objects = bpy.context.selected_objects + objects = context.selected_objects for obj in objects: if not obj.BIMObjectProperties.ifc_definition_id: continue diff --git a/src/blenderbim/blenderbim/bim/module/root/ui.py b/src/blenderbim/blenderbim/bim/module/root/ui.py index c69cf4a9ab..1b8cb640c1 100644 --- a/src/blenderbim/blenderbim/bim/module/root/ui.py +++ b/src/blenderbim/blenderbim/bim/module/root/ui.py @@ -30,7 +30,7 @@ class BIM_PT_class(Panel): row = self.layout.row(align=True) row.operator("bim.reassign_class", icon="CHECKMARK") row.operator("bim.disable_reassign_class", icon="X", text="") - self.draw_class_dropdowns() + self.draw_class_dropdowns(context) else: data = Data.products[props.ifc_definition_id] name = data["type"] @@ -50,15 +50,15 @@ class BIM_PT_class(Panel): else: row.operator("bim.unassign_class", icon="X", text="").obj = context.active_object.name else: - self.draw_class_dropdowns() + self.draw_class_dropdowns(context) row = self.layout.row(align=True) op = row.operator("bim.assign_class") - op.ifc_class = bpy.context.scene.BIMRootProperties.ifc_class - op.predefined_type = bpy.context.scene.BIMRootProperties.ifc_predefined_type - op.userdefined_type = bpy.context.scene.BIMRootProperties.ifc_userdefined_type + op.ifc_class = context.scene.BIMRootProperties.ifc_class + op.predefined_type = context.scene.BIMRootProperties.ifc_predefined_type + op.userdefined_type = context.scene.BIMRootProperties.ifc_userdefined_type - def draw_class_dropdowns(self): - props = bpy.context.scene.BIMRootProperties + def draw_class_dropdowns(self, context): + props = context.scene.BIMRootProperties row = self.layout.row() row.prop(props, "ifc_product") row = self.layout.row() @@ -70,4 +70,4 @@ class BIM_PT_class(Panel): row = self.layout.row() row.prop(props, "ifc_userdefined_type") row = self.layout.row() - row.prop(bpy.context.scene.BIMProperties, "contexts") + row.prop(context.scene.BIMProperties, "contexts") diff --git a/src/blenderbim/blenderbim/bim/module/search/operator.py b/src/blenderbim/blenderbim/bim/module/search/operator.py index 192c4a1786..10127f62d2 100644 --- a/src/blenderbim/blenderbim/bim/module/search/operator.py +++ b/src/blenderbim/blenderbim/bim/module/search/operator.py @@ -22,17 +22,18 @@ colour_list = [ ] -def does_keyword_exist(pattern, string): +def does_keyword_exist(pattern, string, context): string = str(string) + props = context.scene.BIMSearchProperties if ( - bpy.context.scene.BIMSearchProperties.should_use_regex - and bpy.context.scene.BIMSearchProperties.should_ignorecase + props.should_use_regex + and props.should_ignorecase and re.search(pattern, string, flags=re.IGNORECASE) ): return True - elif bpy.context.scene.BIMSearchProperties.should_use_regex and re.search(pattern, string): + elif props.should_use_regex and re.search(pattern, string): return True - elif bpy.context.scene.BIMSearchProperties.should_ignorecase and string.lower() == pattern.lower(): + elif props.should_ignorecase and string.lower() == pattern.lower(): return True elif string == pattern: return True @@ -70,7 +71,7 @@ class SelectIfcClass(bpy.types.Operator): if not obj.BIMObjectProperties.ifc_definition_id: continue element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) - if does_keyword_exist(self.ifc_class, element.is_a()): + if does_keyword_exist(self.ifc_class, element.is_a(), context): obj.select_set(True) return {"FINISHED"} @@ -94,7 +95,7 @@ class SelectAttribute(bpy.types.Operator): value = next((v for k, v in data.items() if k.lower() == attribute_name.lower()), None) else: value = getattr(element, attribute_name, None) - if does_keyword_exist(pattern, value): + if does_keyword_exist(pattern, value, context): obj.select_set(True) return {"FINISHED"} @@ -126,7 +127,7 @@ class SelectPset(bpy.types.Operator): else: props = props or psets.get(search_pset_name, {}) value = props.get(search_prop_name, None) - if does_keyword_exist(pattern, value): + if does_keyword_exist(pattern, value, context): obj.select_set(True) return {"FINISHED"} @@ -138,7 +139,7 @@ class ColourByAttribute(bpy.types.Operator): def execute(self, context): IfcStore.begin_transaction(self) - self.store_state() + self.store_state(context) result = self._execute(context) IfcStore.add_transaction_operation(self) IfcStore.end_transaction(self) @@ -161,13 +162,13 @@ class ColourByAttribute(bpy.types.Operator): if value not in values: values[value] = next(colours) obj.color = values[value] - areas = [a for a in bpy.context.screen.areas if a.type == "VIEW_3D"] + areas = [a for a in context.screen.areas if a.type == "VIEW_3D"] if areas: areas[0].spaces[0].shading.color_type = "OBJECT" return {"FINISHED"} - def store_state(self): - areas = [a for a in bpy.context.screen.areas if a.type == "VIEW_3D"] + def store_state(self, context): + areas = [a for a in context.screen.areas if a.type == "VIEW_3D"] if areas: self.transaction_data = {"area": areas[0], "color_type": areas[0].spaces[0].shading.color_type} @@ -187,7 +188,7 @@ class ColourByPset(bpy.types.Operator): def execute(self, context): IfcStore.begin_transaction(self) - self.store_state() + self.store_state(context) result = self._execute(context) IfcStore.add_transaction_operation(self) IfcStore.end_transaction(self) @@ -218,13 +219,13 @@ class ColourByPset(bpy.types.Operator): if value not in values: values[value] = next(colours) obj.color = values[value] - areas = [a for a in bpy.context.screen.areas if a.type == "VIEW_3D"] + areas = [a for a in context.screen.areas if a.type == "VIEW_3D"] if areas: areas[0].spaces[0].shading.color_type = "OBJECT" return {"FINISHED"} - def store_state(self): - areas = [a for a in bpy.context.screen.areas if a.type == "VIEW_3D"] + def store_state(self, context): + areas = [a for a in context.screen.areas if a.type == "VIEW_3D"] if areas: self.transaction_data = {"area": areas[0], "color_type": areas[0].spaces[0].shading.color_type} @@ -244,7 +245,7 @@ class ColourByClass(bpy.types.Operator): def execute(self, context): IfcStore.begin_transaction(self) - self.store_state() + self.store_state(context) result = self._execute(context) IfcStore.add_transaction_operation(self) IfcStore.end_transaction(self) @@ -254,7 +255,7 @@ class ColourByClass(bpy.types.Operator): self.file = IfcStore.get_file() colours = cycle(colour_list) ifc_classes = {} - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: if not obj.BIMObjectProperties.ifc_definition_id: continue element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) @@ -262,13 +263,13 @@ class ColourByClass(bpy.types.Operator): if ifc_class not in ifc_classes: ifc_classes[ifc_class] = next(colours) obj.color = ifc_classes[ifc_class] - areas = [a for a in bpy.context.screen.areas if a.type == "VIEW_3D"] + areas = [a for a in context.screen.areas if a.type == "VIEW_3D"] if areas: areas[0].spaces[0].shading.color_type = "OBJECT" return {"FINISHED"} - def store_state(self): - areas = [a for a in bpy.context.screen.areas if a.type == "VIEW_3D"] + def store_state(self, context): + areas = [a for a in context.screen.areas if a.type == "VIEW_3D"] if areas: self.transaction_data = {"area": areas[0], "color_type": areas[0].spaces[0].shading.color_type} @@ -286,6 +287,6 @@ class ResetObjectColours(bpy.types.Operator): bl_label = "Reset Colours" def execute(self, context): - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: obj.color = (1, 1, 1, 1) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/sequence/operator.py b/src/blenderbim/blenderbim/bim/module/sequence/operator.py index 5a5a6852df..994838bec4 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/operator.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/operator.py @@ -753,7 +753,7 @@ class AssignProduct(bpy.types.Operator): def _execute(self, context): relating_products = ( - [bpy.data.objects.get(self.relating_product)] if self.relating_product else bpy.context.selected_objects + [bpy.data.objects.get(self.relating_product)] if self.relating_product else context.selected_objects ) for relating_product in relating_products: self.file = IfcStore.get_file() @@ -779,7 +779,7 @@ class UnassignProduct(bpy.types.Operator): def _execute(self, context): relating_products = ( - [bpy.data.objects.get(self.relating_product)] if self.relating_product else bpy.context.selected_objects + [bpy.data.objects.get(self.relating_product)] if self.relating_product else context.selected_objects ) for relating_product in relating_products: self.file = IfcStore.get_file() @@ -805,7 +805,7 @@ class AssignProcess(bpy.types.Operator): def _execute(self, context): related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] if self.related_object else context.selected_objects ) for related_object in related_objects: self.file = IfcStore.get_file() @@ -831,7 +831,7 @@ class UnassignProcess(bpy.types.Operator): def _execute(self, context): related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] if self.related_object else context.selected_objects ) for related_object in related_objects: self.file = IfcStore.get_file() @@ -864,10 +864,10 @@ class GenerateGanttChart(bpy.types.Operator): } for task_id in Data.work_schedules[self.work_schedule]["RelatedObjects"]: self.create_new_task_json(task_id) - with open(os.path.join(bpy.context.scene.BIMProperties.data_dir, "gantt", "index.html"), "w") as f: - with open(os.path.join(bpy.context.scene.BIMProperties.data_dir, "gantt", "index.mustache"), "r") as t: + with open(os.path.join(context.scene.BIMProperties.data_dir, "gantt", "index.html"), "w") as f: + with open(os.path.join(context.scene.BIMProperties.data_dir, "gantt", "index.mustache"), "r") as t: f.write(pystache.render(t.read(), {"json_data": json.dumps(self.json)})) - webbrowser.open("file://" + os.path.join(bpy.context.scene.BIMProperties.data_dir, "gantt", "index.html")) + webbrowser.open("file://" + os.path.join(context.scene.BIMProperties.data_dir, "gantt", "index.html")) return {"FINISHED"} def create_new_task_json(self, task_id): @@ -1568,7 +1568,7 @@ class SelectTaskRelatedProducts(bpy.types.Operator): related_products = ifcopenshell.api.run( "sequence.get_related_products", self.file, **{"related_object": self.file.by_id(self.task)} ) - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: obj.select_set(False) if obj.BIMObjectProperties.ifc_definition_id in related_products: obj.select_set(True) @@ -1644,7 +1644,7 @@ class VisualiseWorkScheduleDateRange(bpy.types.Operator): self.finish = parser.parse(self.props.visualisation_finish, dayfirst=True, fuzzy=True) self.duration = self.finish - self.start self.start_frame = 1 - self.total_frames = self.calculate_total_frames() + self.total_frames = self.calculate_total_frames(context) self.preprocess_tasks() for obj in bpy.data.objects: if not obj.BIMObjectProperties.ifc_definition_id: @@ -1742,7 +1742,7 @@ class VisualiseWorkScheduleDateRange(bpy.types.Operator): obj.keyframe_insert(data_path="color", frame=product_frame["COMPLETED"]) obj.keyframe_insert(data_path="hide_viewport", frame=product_frame["COMPLETED"]) - def calculate_total_frames(self): + def calculate_total_frames(self, context): if self.props.speed_types == "FRAME_SPEED": return self.calculate_using_frames( self.start, @@ -1754,7 +1754,7 @@ class VisualiseWorkScheduleDateRange(bpy.types.Operator): return self.calculate_using_duration( self.start, self.finish, - bpy.context.scene.render.fps, + context.scene.render.fps, isodate.parse_duration(self.props.speed_animation_duration), isodate.parse_duration(self.props.speed_real_duration), ) @@ -1762,7 +1762,7 @@ class VisualiseWorkScheduleDateRange(bpy.types.Operator): return self.calculate_using_multiplier( self.start, self.finish, - bpy.context.scene.render.fps, + context.scene.render.fps, self.props.speed_multiplier, ) diff --git a/src/blenderbim/blenderbim/bim/module/spatial/operator.py b/src/blenderbim/blenderbim/bim/module/spatial/operator.py index 0d77ae5f51..9f7d5648d0 100644 --- a/src/blenderbim/blenderbim/bim/module/spatial/operator.py +++ b/src/blenderbim/blenderbim/bim/module/spatial/operator.py @@ -22,7 +22,7 @@ class AssignContainer(bpy.types.Operator): active_object = context.active_object self.file = IfcStore.get_file() related_elements = ( - [bpy.data.objects.get(self.related_element)] if self.related_element else bpy.context.selected_objects + [bpy.data.objects.get(self.related_element)] if self.related_element else context.selected_objects ) sprops = context.scene.BIMSpatialProperties relating_structure = ( @@ -52,7 +52,7 @@ class AssignContainer(bpy.types.Operator): relating_collection = bpy.data.collections.get(relating_structure_obj.name) if aggregate_collection: - self.remove_collection(bpy.context.scene.collection, aggregate_collection) + self.remove_collection(context.scene.collection, aggregate_collection) for collection in bpy.data.collections: self.remove_collection(collection, aggregate_collection) relating_collection.children.link(aggregate_collection) @@ -77,7 +77,7 @@ class EnableEditingContainer(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - bpy.context.active_object.BIMObjectSpatialProperties.is_editing = True + context.active_object.BIMObjectSpatialProperties.is_editing = True getSpatialContainers(self, context) return {"FINISHED"} @@ -100,7 +100,7 @@ class DisableEditingContainer(bpy.types.Operator): obj: bpy.props.StringProperty() def execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object obj.BIMObjectSpatialProperties.is_editing = False return {"FINISHED"} @@ -115,7 +115,7 @@ class RemoveContainer(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object oprops = obj.BIMObjectProperties self.file = IfcStore.get_file() ifcopenshell.api.run( @@ -125,14 +125,14 @@ class RemoveContainer(bpy.types.Operator): aggregate_collection = bpy.data.collections.get(obj.name) if aggregate_collection: - self.remove_collection(bpy.context.scene.collection, aggregate_collection) + self.remove_collection(context.scene.collection, aggregate_collection) for collection in bpy.data.collections: self.remove_collection(collection, spatial_collection) - bpy.context.scene.collection.children.link(aggregate_collection) + context.scene.collection.children.link(aggregate_collection) else: for collection in obj.users_collection: collection.objects.unlink(obj) - bpy.context.scene.collection.objects.link(obj) + context.scene.collection.objects.link(obj) return {"FINISHED"} def remove_collection(self, parent, child): @@ -153,7 +153,7 @@ class CopyToContainer(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() - objects = [bpy.data.objects.get(self.obj)] if self.obj else bpy.context.selected_objects + objects = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects sprops = context.scene.BIMSpatialProperties container_ids = [c.ifc_definition_id for c in sprops.spatial_elements if c.is_selected] for obj in objects: diff --git a/src/blenderbim/blenderbim/bim/module/structural/operator.py b/src/blenderbim/blenderbim/bim/module/structural/operator.py index 60323d36a8..6b036bccb0 100644 --- a/src/blenderbim/blenderbim/bim/module/structural/operator.py +++ b/src/blenderbim/blenderbim/bim/module/structural/operator.py @@ -20,7 +20,7 @@ class AddStructuralMemberConnection(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.context.active_object + obj = context.active_object oprops = obj.BIMObjectProperties props = obj.BIMStructuralProperties file = IfcStore.get_file() @@ -46,7 +46,7 @@ class EnableEditingStructuralConnectionCondition(bpy.types.Operator): connects_structural_member: bpy.props.IntProperty() def execute(self, context): - obj = bpy.context.active_object + obj = context.active_object oprops = obj.BIMObjectProperties props = obj.BIMStructuralProperties applied_condition_id = Data.connects_structural_members[self.connects_structural_member]["AppliedCondition"] @@ -60,7 +60,7 @@ class DisableEditingStructuralConnectionCondition(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - obj = bpy.context.active_object + obj = context.active_object props = obj.BIMStructuralProperties props.active_connects_structural_member = 0 return {"FINISHED"} @@ -423,7 +423,7 @@ class EnableEditingStructuralItemAxis(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - obj = bpy.context.active_object + obj = context.active_object oprops = obj.BIMObjectProperties props = obj.BIMStructuralProperties @@ -463,7 +463,7 @@ class DisableEditingStructuralItemAxis(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - obj = bpy.context.active_object + obj = context.active_object props = obj.BIMStructuralProperties props.is_editing_axis = False if props.axis_empty: @@ -479,7 +479,7 @@ class EditStructuralItemAxis(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.context.active_object + obj = context.active_object oprops = obj.BIMObjectProperties props = obj.BIMStructuralProperties relative_matrix = props.axis_empty.matrix_world @ obj.matrix_world.inverted() @@ -501,7 +501,7 @@ class EnableEditingStructuralConnectionCS(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - obj = bpy.context.active_object + obj = context.active_object oprops = obj.BIMObjectProperties props = obj.BIMStructuralProperties @@ -553,7 +553,7 @@ class DisableEditingStructuralConnectionCS(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - obj = bpy.context.active_object + obj = context.active_object props = obj.BIMStructuralProperties props.is_editing_connection_cs = False if props.ccs_empty: @@ -570,7 +570,7 @@ class EditStructuralConnectionCS(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.context.active_object + obj = context.active_object oprops = obj.BIMObjectProperties props = obj.BIMStructuralProperties relative_matrix = props.ccs_empty.matrix_world @ obj.matrix_world.inverted() diff --git a/src/blenderbim/blenderbim/bim/module/structural/prop.py b/src/blenderbim/blenderbim/bim/module/structural/prop.py index f7c853e17c..513c7fcf03 100644 --- a/src/blenderbim/blenderbim/bim/module/structural/prop.py +++ b/src/blenderbim/blenderbim/bim/module/structural/prop.py @@ -31,7 +31,7 @@ def getApplicableStructuralLoadTypes(self, context): element_classes = set( [ ifc_file.by_id(o.BIMObjectProperties.ifc_definition_id).is_a() - for o in bpy.context.selected_objects + for o in context.selected_objects if o.BIMObjectProperties.ifc_definition_id ] ) diff --git a/src/blenderbim/blenderbim/bim/module/style/operator.py b/src/blenderbim/blenderbim/bim/module/style/operator.py index f85f4e05f5..400a396d24 100644 --- a/src/blenderbim/blenderbim/bim/module/style/operator.py +++ b/src/blenderbim/blenderbim/bim/module/style/operator.py @@ -32,7 +32,7 @@ class UpdateStyleColours(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() - material = bpy.data.materials.get(self.material) if self.material else bpy.context.active_object.active_material + material = bpy.data.materials.get(self.material) if self.material else context.active_object.active_material settings = get_colour_settings(material) settings["style"] = self.file.by_id(material.BIMMaterialProperties.ifc_style_id) ifcopenshell.api.run("style.edit_style_colours", self.file, **settings) @@ -50,7 +50,7 @@ class RemoveStyle(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() - material = bpy.data.materials.get(self.material) if self.material else bpy.context.active_object.active_material + material = bpy.data.materials.get(self.material) if self.material else context.active_object.active_material ifcopenshell.api.run( "style.remove_style", self.file, style=self.file.by_id(material.BIMMaterialProperties.ifc_style_id) ) @@ -69,7 +69,7 @@ class AddStyle(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() - material = bpy.data.materials.get(self.material) if self.material else bpy.context.active_object.active_material + material = bpy.data.materials.get(self.material) if self.material else context.active_object.active_material settings = get_colour_settings(material) settings["name"] = material.name settings["external_definition"] = None # TODO: Implement. See #1222 @@ -108,7 +108,7 @@ class EnableEditingStyle(bpy.types.Operator): material: bpy.props.StringProperty() def execute(self, context): - material = bpy.data.materials.get(self.material) if self.material else bpy.context.active_object.active_material + material = bpy.data.materials.get(self.material) if self.material else context.active_object.active_material props = material.BIMStyleProperties while len(props.attributes) > 0: props.attributes.remove(0) @@ -126,7 +126,7 @@ class DisableEditingStyle(bpy.types.Operator): material: bpy.props.StringProperty() def execute(self, context): - material = bpy.data.materials.get(self.material) if self.material else bpy.context.active_object.active_material + material = bpy.data.materials.get(self.material) if self.material else context.active_object.active_material props = material.BIMStyleProperties props.is_editing_attributes = False return {"FINISHED"} @@ -141,7 +141,7 @@ class EditStyle(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - material = bpy.context.active_object.active_material + material = context.active_object.active_material props = material.BIMStyleProperties attributes = blenderbim.bim.helper.export_attributes(props.attributes) self.file = IfcStore.get_file() diff --git a/src/blenderbim/blenderbim/bim/module/system/operator.py b/src/blenderbim/blenderbim/bim/module/system/operator.py index da5a714f09..ffff58bc78 100644 --- a/src/blenderbim/blenderbim/bim/module/system/operator.py +++ b/src/blenderbim/blenderbim/bim/module/system/operator.py @@ -186,7 +186,7 @@ class SelectSystemProducts(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: obj.select_set(False) if not obj.BIMObjectProperties.ifc_definition_id: continue diff --git a/src/blenderbim/blenderbim/bim/module/type/operator.py b/src/blenderbim/blenderbim/bim/module/type/operator.py index c3d9ee2b8b..8d3380362e 100644 --- a/src/blenderbim/blenderbim/bim/module/type/operator.py +++ b/src/blenderbim/blenderbim/bim/module/type/operator.py @@ -24,7 +24,7 @@ class AssignType(bpy.types.Operator): related_objects = ( [bpy.data.objects.get(self.related_object)] if self.related_object - else bpy.context.selected_objects or [bpy.context.active_object] + else context.selected_objects or [context.active_object] ) for related_object in related_objects: oprops = related_object.BIMObjectProperties @@ -72,7 +72,7 @@ class UnassignType(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() related_objects = ( - [bpy.data.objects.get(self.related_object)] if self.related_object else bpy.context.selected_objects + [bpy.data.objects.get(self.related_object)] if self.related_object else context.selected_objects ) for related_object in related_objects: oprops = related_object.BIMObjectProperties @@ -93,7 +93,7 @@ class EnableEditingType(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - bpy.context.active_object.BIMTypeProperties.is_editing_type = True + context.active_object.BIMTypeProperties.is_editing_type = True return {"FINISHED"} @@ -104,7 +104,7 @@ class DisableEditingType(bpy.types.Operator): obj: bpy.props.StringProperty() def execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object obj.BIMTypeProperties.is_editing_type = False return {"FINISHED"} @@ -117,7 +117,7 @@ class SelectSimilarType(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() - related_object = bpy.data.objects.get(self.related_object) if self.related_object else bpy.context.active_object + related_object = bpy.data.objects.get(self.related_object) if self.related_object else context.active_object oprops = related_object.BIMObjectProperties product = self.file.by_id(oprops.ifc_definition_id) declaration = IfcStore.get_schema().declaration_by_name(product.is_a()) @@ -129,7 +129,7 @@ class SelectSimilarType(bpy.types.Operator): related_objects = ifcopenshell.api.run( "type.get_related_objects", self.file, **{"related_object": self.file.by_id(oprops.ifc_definition_id)} ) - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: if obj.BIMObjectProperties.ifc_definition_id in related_objects: obj.select_set(True) return {"FINISHED"} @@ -143,10 +143,10 @@ class SelectTypeObjects(bpy.types.Operator): def execute(self, context): self.file = IfcStore.get_file() - relating_type = bpy.data.objects.get(self.relating_type) if self.relating_type else bpy.context.active_object + relating_type = bpy.data.objects.get(self.relating_type) if self.relating_type else context.active_object oprops = relating_type.BIMObjectProperties related_objects = Data.types[oprops.ifc_definition_id] - for obj in bpy.context.visible_objects: + for obj in context.visible_objects: if obj.BIMObjectProperties.ifc_definition_id in related_objects: obj.select_set(True) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/unit/operator.py b/src/blenderbim/blenderbim/bim/module/unit/operator.py index 8e7d9ea859..76afebedc2 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/operator.py +++ b/src/blenderbim/blenderbim/bim/module/unit/operator.py @@ -13,26 +13,27 @@ class AssignUnit(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - ifcopenshell.api.run("unit.assign_unit", IfcStore.get_file(), **self.get_units()) + ifcopenshell.api.run("unit.assign_unit", IfcStore.get_file(), **self.get_units(context)) Data.load(IfcStore.get_file()) return {"FINISHED"} - def get_units(self): + def get_units(self, context): + scene = context.scene units = { "length": { "ifc": None, - "is_metric": bpy.context.scene.unit_settings.system != "IMPERIAL", - "raw": bpy.context.scene.unit_settings.length_unit, + "is_metric": scene.unit_settings.system != "IMPERIAL", + "raw": scene.unit_settings.length_unit, }, "area": { "ifc": None, - "is_metric": bpy.context.scene.unit_settings.system != "IMPERIAL", - "raw": bpy.context.scene.unit_settings.length_unit, + "is_metric": scene.unit_settings.system != "IMPERIAL", + "raw": scene.unit_settings.length_unit, }, "volume": { "ifc": None, - "is_metric": bpy.context.scene.unit_settings.system != "IMPERIAL", - "raw": bpy.context.scene.unit_settings.length_unit, + "is_metric": scene.unit_settings.system != "IMPERIAL", + "raw": scene.unit_settings.length_unit, }, } for data in units.values(): diff --git a/src/blenderbim/blenderbim/bim/module/void/operator.py b/src/blenderbim/blenderbim/bim/module/void/operator.py index 537b5faf19..25a4b030ee 100644 --- a/src/blenderbim/blenderbim/bim/module/void/operator.py +++ b/src/blenderbim/blenderbim/bim/module/void/operator.py @@ -16,7 +16,7 @@ class AddOpening(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object opening = bpy.data.objects.get(self.opening) opening.display_type = "WIRE" if not opening.BIMObjectProperties.ifc_definition_id: @@ -69,7 +69,7 @@ class RemoveOpening(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() for modifier in obj.modifiers: if modifier.type != "BOOLEAN": @@ -97,7 +97,7 @@ class AddFilling(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object opening = bpy.data.objects.get(self.opening) if self.opening else context.scene.VoidProperties.desired_opening self.file = IfcStore.get_file() element_id = obj.BIMObjectProperties.ifc_definition_id @@ -123,7 +123,7 @@ class RemoveFilling(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def _execute(self, context): - obj = bpy.data.objects.get(self.obj) if self.obj else bpy.context.active_object + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.file = IfcStore.get_file() ifcopenshell.api.run( "void.remove_filling", self.file, **{"element": self.file.by_id(obj.BIMObjectProperties.ifc_definition_id)} @@ -138,7 +138,7 @@ class ToggleOpeningVisibility(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - for project in [c for c in bpy.context.view_layer.layer_collection.children if "IfcProject" in c.name]: + for project in [c for c in context.view_layer.layer_collection.children if "IfcProject" in c.name]: for collection in [c for c in project.children if "IfcOpeningElements" in c.name]: collection.hide_viewport = not collection.hide_viewport return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py index 01be81b014..8b29b3150c 100644 --- a/src/blenderbim/blenderbim/bim/operator.py +++ b/src/blenderbim/blenderbim/bim/operator.py @@ -29,8 +29,8 @@ class ExportIFC(bpy.types.Operator): if not IfcStore.get_file(): self.report({"ERROR"}, "No IFC project is available for export - create or import a project first.") return {"FINISHED"} - if bpy.context.scene.BIMProperties.ifc_file: - self.filepath = bpy.context.scene.BIMProperties.ifc_file + if context.scene.BIMProperties.ifc_file: + self.filepath = context.scene.BIMProperties.ifc_file return self.execute(context) if not self.filepath: self.filepath = bpy.path.ensure_ext(bpy.data.filepath, ".ifc") @@ -69,11 +69,12 @@ class ExportIFC(bpy.types.Operator): ifc_exporter.export() settings.logger.info("Export finished in {:.2f} seconds".format(time.time() - start)) print("Export finished in {:.2f} seconds".format(time.time() - start)) - if not bpy.context.scene.DocProperties.ifc_files: - new = bpy.context.scene.DocProperties.ifc_files.add() + scene = context.scene + if not scene.DocProperties.ifc_files: + new = scene.DocProperties.ifc_files.add() new.name = output_file - if not bpy.context.scene.BIMProperties.ifc_file: - bpy.context.scene.BIMProperties.ifc_file = output_file + if not scene.BIMProperties.ifc_file: + scene.BIMProperties.ifc_file = output_file if bpy.data.is_saved and bpy.data.is_dirty and bpy.data.filepath: bpy.ops.wm.save_mainfile(filepath=bpy.data.filepath) return {"FINISHED"} @@ -109,8 +110,8 @@ class ImportIFC(bpy.types.Operator, ImportHelper): def execute(self, context): start = time.time() logger = logging.getLogger("ImportIFC") - path_log = os.path.join(bpy.context.scene.BIMProperties.data_dir, "process.log"), - if not os.access(bpy.context.scene.BIMProperties.data_dir, os.W_OK): + path_log = os.path.join(context.scene.BIMProperties.data_dir, "process.log"), + if not os.access(context.scene.BIMProperties.data_dir, os.W_OK): path_log = os.path.join(tempfile.mkdtemp(), "process.log") logging.basicConfig( filename=path_log, @@ -161,7 +162,7 @@ class SelectIfcFile(bpy.types.Operator): def execute(self, context): if os.path.exists(self.filepath) and "ifc" in os.path.splitext(self.filepath)[1]: - bpy.context.scene.BIMProperties.ifc_file = self.filepath + context.scene.BIMProperties.ifc_file = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -176,7 +177,7 @@ class SelectDataDir(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.BIMProperties.data_dir = os.path.dirname(self.filepath) + context.scene.BIMProperties.data_dir = os.path.dirname(self.filepath) return {"FINISHED"} def invoke(self, context, event): @@ -191,7 +192,7 @@ class SelectSchemaDir(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - bpy.context.scene.BIMProperties.schema_dir = os.path.dirname(self.filepath) + context.scene.BIMProperties.schema_dir = os.path.dirname(self.filepath) return {"FINISHED"} def invoke(self, context, event): @@ -222,36 +223,36 @@ class AddSectionPlane(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - obj = self.create_section_obj() + obj = self.create_section_obj(context) if not self.has_section_override_node(): self.create_section_compare_node() - self.create_section_override_node(obj) + self.create_section_override_node(obj, context) else: self.append_obj_to_section_override_node(obj) - self.add_default_material_if_none_exists() + self.add_default_material_if_none_exists(context) self.override_materials() return {"FINISHED"} - def create_section_obj(self): + def create_section_obj(self, context): section = bpy.data.objects.new("Section", None) section.empty_display_type = "SINGLE_ARROW" section.empty_display_size = 5 section.show_in_front = True if ( - bpy.context.active_object - and bpy.context.active_object.select_get() - and isinstance(bpy.context.active_object.data, bpy.types.Camera) + context.active_object + and context.active_object.select_get() + and isinstance(context.active_object.data, bpy.types.Camera) ): section.matrix_world = ( - bpy.context.active_object.matrix_world @ Euler((radians(180.0), 0.0, 0.0), "XYZ").to_matrix().to_4x4() + context.active_object.matrix_world @ Euler((radians(180.0), 0.0, 0.0), "XYZ").to_matrix().to_4x4() ) else: section.rotation_euler = Euler((radians(180.0), 0.0, 0.0), "XYZ") - section.location = bpy.context.scene.cursor.location + section.location = context.scene.cursor.location collection = bpy.data.collections.get("Sections") if not collection: collection = bpy.data.collections.new("Sections") - bpy.context.scene.collection.children.link(collection) + context.scene.collection.children.link(collection) collection.objects.link(section) return section @@ -283,7 +284,7 @@ class AddSectionPlane(bpy.types.Operator): group.links.new(add.outputs[0], compare.inputs[0]) group.links.new(compare.outputs[0], group_output.inputs[""]) - def create_section_override_node(self, obj): + def create_section_override_node(self, obj, context): group = bpy.data.node_groups.new("Section Override", type="ShaderNodeTree") group_input = group.nodes.new(type="NodeGroupInput") @@ -292,7 +293,7 @@ class AddSectionPlane(bpy.types.Operator): backfacing = group.nodes.new(type="ShaderNodeNewGeometry") backfacing_mix = group.nodes.new(type="ShaderNodeMixShader") emission = group.nodes.new(type="ShaderNodeEmission") - emission.inputs[0].default_value = list(bpy.context.scene.BIMProperties.section_plane_colour) + [1] + emission.inputs[0].default_value = list(context.scene.BIMProperties.section_plane_colour) + [1] group.links.new(backfacing.outputs["Backfacing"], backfacing_mix.inputs[0]) group.links.new(group_input.outputs[""], backfacing_mix.inputs[1]) @@ -337,16 +338,16 @@ class AddSectionPlane(bpy.types.Operator): section_compare.name = "Last Section Compare" - def add_default_material_if_none_exists(self): + def add_default_material_if_none_exists(self, context): material = bpy.data.materials.get("Section Override") if not material: material = bpy.data.materials.new("Section Override") material.use_nodes = True - if bpy.context.scene.BIMProperties.should_section_selected_objects: - objects = list(bpy.context.selected_objects) + if context.scene.BIMProperties.should_section_selected_objects: + objects = list(context.selected_objects) else: - objects = list(bpy.context.visible_objects) + objects = list(context.visible_objects) for obj in objects: aggregate = obj.instance_collection @@ -390,7 +391,7 @@ class RemoveSectionPlane(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - name = bpy.context.active_object.name + name = context.active_object.name section_override = bpy.data.node_groups.get("Section Override") if not section_override: return {"FINISHED"} @@ -406,7 +407,7 @@ class RemoveSectionPlane(bpy.types.Operator): else: # If it links to section_compare.inputs[0] if section_compare.inputs[1].links[0].from_node.name == "Mock Section": # Then it is the very last section. Purge everything. - self.purge_all_section_data() + self.purge_all_section_data(context) return {"FINISHED"} section_override.links.new( section_compare.inputs[1].links[0].from_socket, section_compare.outputs[0].links[0].to_socket @@ -419,10 +420,10 @@ class RemoveSectionPlane(bpy.types.Operator): section_mix = section_override.nodes.get("Section Mix") new_last_compare = section_mix.inputs[0].links[0].from_node new_last_compare.name = "Last Section Compare" - bpy.ops.object.delete({"selected_objects": [bpy.context.active_object]}) + bpy.ops.object.delete({"selected_objects": [context.active_object]}) return {"FINISHED"} - def purge_all_section_data(self): + def purge_all_section_data(self, context): bpy.data.materials.remove(bpy.data.materials.get("Section Override")) for material in bpy.data.materials: if not material.node_tree: @@ -436,7 +437,7 @@ class RemoveSectionPlane(bpy.types.Operator): material.node_tree.nodes.remove(override) bpy.data.node_groups.remove(bpy.data.node_groups.get("Section Override")) bpy.data.node_groups.remove(bpy.data.node_groups.get("Section Compare")) - bpy.ops.object.delete({"selected_objects": [bpy.context.active_object]}) + bpy.ops.object.delete({"selected_objects": [context.active_object]}) class ReloadIfcFile(bpy.types.Operator): @@ -455,7 +456,7 @@ class AddIfcFile(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - bpy.context.scene.DocProperties.ifc_files.add() + context.scene.DocProperties.ifc_files.add() return {"FINISHED"} @@ -466,7 +467,7 @@ class RemoveIfcFile(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - bpy.context.scene.DocProperties.ifc_files.remove(self.index) + context.scene.DocProperties.ifc_files.remove(self.index) return {"FINISHED"} @@ -477,9 +478,9 @@ class SetOverrideColour(bpy.types.Operator): def execute(self, context): result = 0 - for obj in bpy.context.selected_objects: - obj.color = bpy.context.scene.BIMProperties.override_colour - area = next(area for area in bpy.context.screen.areas if area.type == "VIEW_3D") + for obj in context.selected_objects: + obj.color = context.scene.BIMProperties.override_colour + area = next(area for area in context.screen.areas if area.type == "VIEW_3D") area.spaces[0].shading.color_type = "OBJECT" return {"FINISHED"} @@ -505,7 +506,7 @@ class LinkIfc(bpy.types.Operator): filepath: bpy.props.StringProperty(subtype="FILE_PATH") def execute(self, context): - # bpy.context.active_object.active_material.BIMMaterialProperties.location = self.filepath + # context.active_object.active_material.BIMMaterialProperties.location = self.filepath # coll_name = "MyCollection" with bpy.data.libraries.load(self.filepath, link=True) as (data_from, data_to): @@ -534,13 +535,13 @@ class SnapSpacesTogether(bpy.types.Operator): def execute(self, context): threshold = 0.5 processed_polygons = set() - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if obj.type != "MESH": continue for polygon in obj.data.polygons: center = obj.matrix_world @ polygon.center distance = None - for obj2 in bpy.context.selected_objects: + for obj2 in context.selected_objects: if obj2 == obj or obj.type != "MESH": continue result = obj2.ray_cast(obj2.matrix_world.inverted() @ center, polygon.normal, distance=threshold) @@ -576,7 +577,7 @@ class SelectExternalMaterialDir(bpy.types.Operator): def execute(self, context): # TODO: this is dead code, awaiting reimplementation. See #1222. - bpy.context.active_object.active_material.BIMMaterialProperties.location = self.filepath + context.active_object.active_material.BIMMaterialProperties.location = self.filepath return {"FINISHED"} def invoke(self, context, event): @@ -590,28 +591,28 @@ class FetchExternalMaterial(bpy.types.Operator): def execute(self, context): # TODO: this is dead code, awaiting reimplementation. See #1222. - location = bpy.context.active_object.active_material.BIMMaterialProperties.location + location = context.active_object.active_material.BIMMaterialProperties.location if location[-6:] != ".mpass": return {"FINISHED"} if not os.path.isabs(location): - location = os.path.join(bpy.context.scene.BIMProperties.data_dir, location) + location = os.path.join(context.scene.BIMProperties.data_dir, location) with open(location) as f: self.material_pass = json.load(f) - if bpy.context.scene.render.engine == "BLENDER_EEVEE" and "eevee" in self.material_pass: - self.fetch_eevee_or_cycles("eevee") - elif bpy.context.scene.render.engine == "CYCLES" and "cycles" in self.material_pass: - self.fetch_eevee_or_cycles("cycles") + if context.scene.render.engine == "BLENDER_EEVEE" and "eevee" in self.material_pass: + self.fetch_eevee_or_cycles("eevee", context) + elif context.scene.render.engine == "CYCLES" and "cycles" in self.material_pass: + self.fetch_eevee_or_cycles("cycles", context) return {"FINISHED"} - def fetch_eevee_or_cycles(self, name): - identification = bpy.context.active_object.active_material.BIMMaterialProperties.identification + def fetch_eevee_or_cycles(self, name, context): + identification = context.active_object.active_material.BIMMaterialProperties.identification uri = self.material_pass[name]["uri"] if not os.path.isabs(uri): - uri = os.path.join(bpy.context.scene.BIMProperties.data_dir, uri) + uri = os.path.join(context.scene.BIMProperties.data_dir, uri) bpy.ops.wm.link(filename=identification, directory=os.path.join(uri, "Material")) for material in bpy.data.materials: if material.name == identification and material.library: - bpy.context.active_object.material_slots[0].material = material + context.active_object.material_slots[0].material = material return @@ -621,15 +622,15 @@ class FetchObjectPassport(bpy.types.Operator): def execute(self, context): # TODO: this is dead code, awaiting reimplementation. See #1222. - for reference in bpy.context.active_object.BIMObjectProperties.document_references: - reference = bpy.context.scene.BIMProperties.document_references[reference.name] + for reference in context.active_object.BIMObjectProperties.document_references: + reference = context.scene.BIMProperties.document_references[reference.name] if reference.location[-6:] == ".blend": - self.fetch_blender(reference) + self.fetch_blender(reference, context) return {"FINISHED"} - def fetch_blender(self, reference): + def fetch_blender(self, reference, context): bpy.ops.wm.link(filename=reference.name, directory=os.path.join(reference.location, "Mesh")) - bpy.context.active_object.data = bpy.data.meshes[reference.name] + context.active_object.data = bpy.data.meshes[reference.name] class CopyPropertyToSelection(bpy.types.Operator): @@ -641,7 +642,7 @@ class CopyPropertyToSelection(bpy.types.Operator): def execute(self, context): # TODO: this is dead code, awaiting reimplementation. See #1222. - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if "/" not in obj.name: continue pset = obj.BIMObjectProperties.psets.get(self.pset_name) @@ -671,9 +672,9 @@ class CopyAttributeToSelection(bpy.types.Operator): def execute(self, context): # TODO: this is dead code, awaiting reimplementation. See #1222. - self.schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(bpy.context.scene.BIMProperties.export_schema) + self.schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(context.scene.BIMProperties.export_schema) self.applicable_attributes_cache = {} - for obj in bpy.context.selected_objects: + for obj in context.selected_objects: if "/" not in obj.name: continue attribute = obj.BIMObjectProperties.attributes.get(self.attribute_name) diff --git a/src/blenderbim/blenderbim/bim/ui.py b/src/blenderbim/blenderbim/bim/ui.py index 29fbac4c0a..cb6661e8c4 100644 --- a/src/blenderbim/blenderbim/bim/ui.py +++ b/src/blenderbim/blenderbim/bim/ui.py @@ -15,7 +15,7 @@ class BIM_PT_section_plane(Panel): def draw(self, context): layout = self.layout layout.use_property_split = True - props = bpy.context.scene.BIMProperties + props = context.scene.BIMProperties row = layout.row() row.prop(props, "should_section_selected_objects") @@ -91,7 +91,7 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): def ifc_units(self, context): scene = context.scene - props = context.scene.BIMProperties + props = scene.BIMProperties layout = self.layout layout.use_property_decorate = False layout.use_property_split = True @@ -100,7 +100,7 @@ def ifc_units(self, context): row = layout.row() row.prop(props, "volume_unit") row = layout.row() - if bpy.context.scene.unit_settings.system == "IMPERIAL": + if scene.unit_settings.system == "IMPERIAL": row.prop(props, "imperial_precision") else: row.prop(props, "metric_precision") From b79d23b3e27e35fb6ddd1eb2481a631c79df69b6 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Fri, 30 Jul 2021 14:13:41 +0200 Subject: [PATCH 090/168] Hide panels with features unsupported in V2x3 (#1614) --- src/blenderbim/blenderbim/bim/module/cost/ui.py | 3 ++- src/blenderbim/blenderbim/bim/module/resource/ui.py | 3 ++- src/blenderbim/blenderbim/bim/module/sequence/ui.py | 9 ++++++--- .../blenderbim/bim/module/structural/ui.py | 12 ++++++++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/cost/ui.py b/src/blenderbim/blenderbim/bim/module/cost/ui.py index a2a0a0d3c8..8f47ecd85e 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/ui.py +++ b/src/blenderbim/blenderbim/bim/module/cost/ui.py @@ -13,7 +13,8 @@ class BIM_PT_cost_schedules(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): self.props = context.scene.BIMCostProperties diff --git a/src/blenderbim/blenderbim/bim/module/resource/ui.py b/src/blenderbim/blenderbim/bim/module/resource/ui.py index 1544d3fd39..f3619ed2de 100644 --- a/src/blenderbim/blenderbim/bim/module/resource/ui.py +++ b/src/blenderbim/blenderbim/bim/module/resource/ui.py @@ -13,7 +13,8 @@ class BIM_PT_resources(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): self.props = context.scene.BIMResourceProperties diff --git a/src/blenderbim/blenderbim/bim/module/sequence/ui.py b/src/blenderbim/blenderbim/bim/module/sequence/ui.py index 529d48bd9e..8a0c94da3f 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/ui.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/ui.py @@ -17,7 +17,8 @@ class BIM_PT_work_plans(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): if not Data.is_loaded: @@ -88,7 +89,8 @@ class BIM_PT_work_schedules(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): self.props = context.scene.BIMWorkScheduleProperties @@ -429,7 +431,8 @@ class BIM_PT_work_calendars(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): if not Data.is_loaded: diff --git a/src/blenderbim/blenderbim/bim/module/structural/ui.py b/src/blenderbim/blenderbim/bim/module/structural/ui.py index 295cd0f1c5..5ce31355b8 100644 --- a/src/blenderbim/blenderbim/bim/module/structural/ui.py +++ b/src/blenderbim/blenderbim/bim/module/structural/ui.py @@ -261,7 +261,8 @@ class BIM_PT_structural_analysis_models(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): if not Data.is_loaded: @@ -345,7 +346,8 @@ class BIM_PT_structural_load_cases(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): self.props = context.scene.BIMStructuralProperties @@ -449,7 +451,8 @@ class BIM_PT_structural_loads(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): if not Data.is_loaded: @@ -516,7 +519,8 @@ class BIM_PT_boundary_conditions(Panel): @classmethod def poll(cls, context): - return IfcStore.get_file() + file = IfcStore.get_file() + return file and hasattr(file, "schema") and file.schema != "IFC2X3" def draw(self, context): if not Data.is_loaded: From a42746264684fcdfc5f4854a17a5383c2fb89fd1 Mon Sep 17 00:00:00 2001 From: Long <931924+htlcnn@users.noreply.github.com> Date: Sat, 31 Jul 2021 09:39:05 +0700 Subject: [PATCH 091/168] GlobalId is string (#1615) --- src/blenderbim/blenderbim/bim/module/diff/operator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/diff/operator.py b/src/blenderbim/blenderbim/bim/module/diff/operator.py index e932629ecc..6054df59b8 100644 --- a/src/blenderbim/blenderbim/bim/module/diff/operator.py +++ b/src/blenderbim/blenderbim/bim/module/diff/operator.py @@ -36,11 +36,11 @@ class VisualiseDiff(bpy.types.Operator): global_id = ifc_file.by_id(obj.BIMObjectProperties.ifc_definition_id).GlobalId if not global_id: continue - if global_id.string_value in diff["deleted"]: + if global_id in diff["deleted"]: obj.color = (1.0, 0.0, 0.0, 0.2) - elif global_id.string_value in diff["added"]: + elif global_id in diff["added"]: obj.color = (0.0, 1.0, 0.0, 0.2) - elif global_id.string_value in diff["changed"]: + elif global_id in diff["changed"]: obj.color = (0.0, 0.0, 1.0, 0.2) area = next(area for area in context.screen.areas if area.type == "VIEW_3D") area.spaces[0].shading.color_type = "OBJECT" From 86a44c21ac8e16eb37a7ff74c65a2a9c6aa988a2 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 1 Aug 2021 10:51:11 +1000 Subject: [PATCH 092/168] WIP experimental hpp-fcl and aabbtree-based IfcClash --- src/ifcclash/ifcclash/collider.py | 96 ++++++++++ src/ifcclash/ifcclash/ifcclash.py | 302 ++++++++++++++++++++++++++++++ 2 files changed, 398 insertions(+) create mode 100644 src/ifcclash/ifcclash/collider.py create mode 100644 src/ifcclash/ifcclash/ifcclash.py diff --git a/src/ifcclash/ifcclash/collider.py b/src/ifcclash/ifcclash/collider.py new file mode 100644 index 0000000000..710ad3c1a4 --- /dev/null +++ b/src/ifcclash/ifcclash/collider.py @@ -0,0 +1,96 @@ +import hppfcl +import numpy as np +from aabbtree import AABB +from aabbtree import AABBTree + + +class Collider: + def __init__(self): + self.groups = {} + + def create_group(self, name): + self.groups[name] = {"tree": AABBTree(), "objects": {}} + + def create_object(self, group_name, id, shape): + obj = hppfcl.CollisionObject( + self.create_bvh(shape.geometry), self.create_transform(shape.transformation.matrix.data) + ) + aabb = obj.getAABB() + c = aabb.center() + x = aabb.width() + y = aabb.height() + z = aabb.depth() + aabb = AABB([(c[0] - x / 2, c[0] + x / 2), (c[1] - y / 2, c[1] + y / 2), (c[2] - z / 2, c[2] + z / 2)]) + self.groups[group_name]["tree"].add(aabb, id) + self.groups[group_name]["objects"][id] = (aabb, obj) + + def collide_internal(self, name): + print('starting internal collision') + return self.collide_narrowphase(self.collide_broadphase(name, name)) + + def collide_group(self, name1, name2): + print('starting group collision') + return self.collide_narrowphase(self.collide_broadphase(name1, name2)) + + def collide_broadphase(self, name1, name2): + print('Begin broad phase') + potential_collisions = [] + checked_collisions = set() + i = 0 + for id, obj_data in self.groups[name1]["objects"].items(): + aabb, obj = obj_data + collision_stack = [self.groups[name2]["tree"]] + checked_collisions.add(id) + i += 1 + while i % 1000 == 0: + print(i, '...') + while collision_stack: + node = collision_stack.pop() + if node.value == id or node.value in checked_collisions: + continue + if node.does_overlap(aabb): + if node.is_leaf: + potential_collisions.append( + { + "id1": id, + "obj1": obj, + "id2": node.value, + "obj2": self.groups[name2]["objects"][node.value][1], + } + ) + else: + collision_stack.append(node.left) + collision_stack.append(node.right) + return potential_collisions + + def collide_narrowphase(self, potential_collisions): + print('Begin narrow phase') + collisions = [] + for data in potential_collisions: + result = hppfcl.CollisionResult() + hppfcl.collide(data["obj1"], data["obj2"], hppfcl.CollisionRequest(), result) + if result.isCollision(): + collisions.append({"id1": data["id1"], "id2": data["id2"], "collision": result}) + print({"id1": data["id1"], "id2": data["id2"], "collision": result}) + return collisions + + def create_transform(self, m): + mat = np.array([[m[0], m[3], m[6], m[9]], [m[1], m[4], m[7], m[10]], [m[2], m[5], m[8], m[11]], [0, 0, 0, 1]]) + mat.transpose() + return hppfcl.Transform3f(mat[:3, :3], mat[:3, 3]) + + def create_bvh(self, mesh): + v = mesh.verts + f = mesh.faces + mesh_verts = np.array([[v[i], v[i + 1], v[i + 2]] for i in range(0, len(v), 3)]) + mesh_faces = [(int(f[i]), int(f[i + 1]), int(f[i + 2])) for i in range(0, len(f), 3)] + + bvh = hppfcl.BVHModelOBB() + bvh.beginModel(num_tris=len(mesh.faces), num_vertices=len(mesh_verts)) + vertices = hppfcl.StdVec_Vec3f() + [vertices.append(v) for v in mesh_verts] + triangles = hppfcl.StdVec_Triangle() + [triangles.append(hppfcl.Triangle(f[0], f[1], f[2])) for f in mesh_faces] + bvh.addSubModel(vertices, triangles) + bvh.endModel() + return bvh diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py new file mode 100644 index 0000000000..6e51fa7e2c --- /dev/null +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -0,0 +1,302 @@ +#!/usr/bin/env python3 + +import ifcopenshell +import ifcopenshell.geom +import ifcopenshell.util.selector +import multiprocessing +import numpy as np +import json +import sys +import argparse +import logging +from . import collider + + +class Clasher: + def __init__(self, settings): + self.settings = settings + self.geom_settings = ifcopenshell.geom.settings() + self.clash_sets = [] + self.collider = collider.Collider() + self.selector = ifcopenshell.util.selector.Selector() + self.ifcs = {} + + def clash(self): + existing_limit = sys.getrecursionlimit() + sys.setrecursionlimit(100000) + for clash_set in self.clash_sets: + self.process_clash_set(clash_set) + sys.setrecursionlimit(existing_limit) + + def process_clash_set(self, clash_set): + print("proccessings", clash_set) + self.collider.create_group("a") + for source in clash_set["a"]: + self.add_collision_objects( + "a", self.load_ifc(source["file"]), source.get("mode", None), source.get("selector", None) + ) + + if "b" in clash_set: + self.collider.create_group("b") + for source in clash_set["b"]: + self.add_collision_objects( + "b", self.load_ifc(source["file"]), source.get("mode", None), source.get("selector", None) + ) + results = self.collider.collide_group("a", "b") + else: + results = self.collider.collide_internal("a") + + for result in results: + print("*" * 10) + print("Is Collision:", result["collision"].isCollision()) + print(result["id1"], result["id2"]) + print("Number of contacts:", result["collision"].numContacts()) + for contact in result["collision"].getContacts(): + print(contact) + + def load_ifc(self, path): + ifc = self.ifcs.get(path, None) + if not ifc: + ifc = ifcopenshell.open(path) + self.ifcs[path] = ifc + return ifc + + def add_collision_objects(self, name, ifc_file, mode=None, selector=None): + print('adding collision objects', name) + if not mode: + iterator = ifcopenshell.geom.iterator( + self.geom_settings, + ifc_file, + multiprocessing.cpu_count(), + exclude=(ifc_file.by_type("IfcSpatialStructureElement")), + ) + elif mode == "e": + iterator = ifcopenshell.geom.iterator( + self.geom_settings, + ifc_file, + multiprocessing.cpu_count(), + exclude=selector.parse(ifc_file, selector), + ) + elif mode == "i": + iterator = ifcopenshell.geom.iterator( + self.geom_settings, + ifc_file, + multiprocessing.cpu_count(), + include=selector.parse(ifc_file, selector), + ) + valid_file = iterator.initialize() + if not valid_file: + return False + old_progress = -1 + while True: + shape = iterator.get() + self.collider.create_object(name, shape.guid, shape) + if not iterator.next(): + break + + def export(self): + if len(self.settings.output) > 4 and self.settings.output[-4:] == ".bcf": + return self.export_bcfxml() + self.export_json() + + def export_bcfxml(self): + import bcf + import bcf.bcfxml + + for i, clash_set in enumerate(self.clash_sets): + bcfxml = bcf.bcfxml.BcfXml() + bcfxml.new_project() + bcfxml.project.name = clash_set["name"] + bcfxml.edit_project() + for key, clash in clash_set["clashes"].items(): + topic = bcf.data.Topic() + topic.title = "{}/{} and {}/{}".format( + clash["a_ifc_class"], clash["a_name"], clash["b_ifc_class"], clash["b_name"] + ) + topic = bcfxml.add_topic(topic) + viewpoint = bcf.data.Viewpoint() + viewpoint.perspective_camera = bcf.data.PerspectiveCamera() + position = np.array(clash["position"]) + point = position + np.array((5, 5, 5)) # Dumb, but works! + viewpoint.perspective_camera.camera_view_point.x = point[0] + viewpoint.perspective_camera.camera_view_point.y = point[1] + viewpoint.perspective_camera.camera_view_point.z = point[2] + mat = self.get_track_to_matrix(point, position) + viewpoint.perspective_camera.camera_direction.x = mat[0][2] * -1 + viewpoint.perspective_camera.camera_direction.y = mat[1][2] * -1 + viewpoint.perspective_camera.camera_direction.z = mat[2][2] * -1 + viewpoint.perspective_camera.camera_up_vector.x = mat[0][1] + viewpoint.perspective_camera.camera_up_vector.y = mat[1][1] + viewpoint.perspective_camera.camera_up_vector.z = mat[2][1] + viewpoint.components = bcf.data.Components() + c1 = bcf.data.Component() + c1.ifc_guid = clash["a_global_id"] + c2 = bcf.data.Component() + c2.ifc_guid = clash["b_global_id"] + viewpoint.components.selection.append(c1) + viewpoint.components.selection.append(c2) + viewpoint.components.visibility = bcf.data.ComponentVisibility() + viewpoint.components.visibility.default_visibility = True + viewpoint.snapshot = self.get_viewpoint_snapshot(viewpoint, mat) + bcfxml.add_viewpoint(topic, viewpoint) + if i == 0: + bcfxml.save_project(self.settings.output) + else: + bcfxml.save_project(self.settings.output + f".{i}") + + def get_viewpoint_snapshot(self, viewpoint, mat): + return None # Possible to overload this function in a GUI application if used as a library + + # https://blender.stackexchange.com/questions/68834/recreate-to-track-quat-with-two-vectors-using-python/141706#141706 + def get_track_to_matrix(self, camera_position, target_position): + camera_direction = camera_position - target_position + camera_direction = camera_direction / np.linalg.norm(camera_direction) + camera_right = np.cross(np.array([0.0, 0.0, 1.0]), camera_direction) + camera_right = camera_right / np.linalg.norm(camera_right) + camera_up = np.cross(camera_direction, camera_right) + camera_up = camera_up / np.linalg.norm(camera_up) + rotation_transform = np.zeros((4, 4)) + rotation_transform[0, :3] = camera_right + rotation_transform[1, :3] = camera_up + rotation_transform[2, :3] = camera_direction + rotation_transform[-1, -1] = 1 + translation_transform = np.eye(4) + translation_transform[:3, -1] = -camera_position + look_at_transform = np.matmul(rotation_transform, translation_transform) + return np.linalg.inv(look_at_transform) + + def export_json(self): + results = self.clash_sets.copy() + for result in results: + del result["a_cm"] + del result["b_cm"] + for ab in ["a", "b"]: + for data in result[ab]: + if "ifc" in data: + del data["ifc"] + with open(self.settings.output, "w", encoding="utf-8") as clashes_file: + json.dump(results, clashes_file, indent=4) + + def get_element(self, clash_group, global_id): + for data in clash_group: + try: + element = data["ifc"].by_guid(global_id) + if element: + return element + except: + pass + + def smart_group_clashes(self, clash_sets, max_clustering_distance): + from sklearn.cluster import OPTICS + from collections import defaultdict + + count_of_input_clashes = 0 + count_of_clash_sets = 0 + count_of_smart_groups = 0 + count_of_final_clash_sets = 0 + + count_of_clash_sets = len(clash_sets) + + for clash_set in clash_sets: + if not "clashes" in clash_set.keys(): + print(f"Skipping clash set [{clash_set['name']}] since it contains no clash results.") + continue + clashes = clash_set["clashes"] + if len(clashes) == 0: + print(f"Skipping clash set [{clash_set['name']}] since it contains no clash results.") + continue + + count_of_input_clashes += len(clashes) + + positions = [] + for clash in clashes.values(): + positions.append(clash["position"]) + + data = np.array(positions) + + # INPUTS + # set the desired maximum distance between the grouped points + if max_clustering_distance > 0: + max_distance_between_grouped_points = max_clustering_distance + else: + max_distance_between_grouped_points = 3 + + model = OPTICS(min_samples=2, max_eps=max_distance_between_grouped_points) + model.fit_predict(data) + pred = model.fit_predict(data) + + # Insert the smart groups into the clashes + if len(pred) == len(clashes.values()): + i = 0 + for clash in clashes.values(): + int_prediction = int(pred[i]) + if int_prediction == -1: + # ungroup this clash since it's a single clash that we were not able to group. + new_clash_group_number = np.amax(pred).item() + 1 + i + clash["smart_group"] = new_clash_group_number + else: + clash["smart_group"] = int_prediction + i += 1 + + # Create JSON with smart_groups that contain GlobalIDs + output_clash_sets = defaultdict(list) + for clash_set in clash_sets: + if not "clashes" in clash_set.keys(): + continue + smart_groups = defaultdict(list) + for clash_id, content in clash_set["clashes"].items(): + if "smart_group" in content: + object_id_list = list() + # Clash has been grouped, let's extract it. + object_id_list.append(content["a_global_id"]) + object_id_list.append(content["b_global_id"]) + smart_groups[content["smart_group"]].append(object_id_list) + count_of_smart_groups += len(smart_groups) + output_clash_sets[clash_set["name"]].append(smart_groups) + + # Rename the clash groups to something more sensible + for clash_set, smart_groups in output_clash_sets.items(): + clash_set_name = clash_set + # Only select the clashes that correspond to the actively selected IFC Clash Set + i = 1 + new_smart_group_name = "" + for smart_group, global_id_pairs in list(smart_groups[0].items()): + new_smart_group_name = f"{clash_set_name} - {i}" + smart_groups[0][new_smart_group_name] = smart_groups[0].pop(smart_group) + i += 1 + + count_of_final_clash_sets = len(output_clash_sets) + print( + f"Took {count_of_input_clashes} clashes in {count_of_clash_sets} clash sets and turned", + f"them into {count_of_smart_groups} smart groups in {count_of_final_clash_sets} clash sets", + ) + + return output_clash_sets + + +class ClashSettings: + def __init__(self): + self.logger = None + self.output = "clashes.json" + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Clashes geometry between two IFC files") + parser.add_argument("input", type=str, help="A JSON dataset describing a series of clashsets") + parser.add_argument( + "-o", "--output", type=str, help="The JSON diff file to output. Defaults to output.json", default="output.json" + ) + args = parser.parse_args() + + settings = ClashSettings() + settings.output = args.output + settings.logger = logging.getLogger("Clash") + settings.logger.setLevel(logging.DEBUG) + handler = logging.StreamHandler(sys.stdout) + handler.setLevel(logging.DEBUG) + settings.logger.addHandler(handler) + ifc_clasher = Clasher(settings) + with open(args.input, "r") as clash_sets_file: + ifc_clasher.clash_sets = json.loads(clash_sets_file.read()) + ifc_clasher.clash() + ifc_clasher.export() From 2137b340636fb7c2ec5eda1765b5f7f44062075d Mon Sep 17 00:00:00 2001 From: Chun <36185113+chunchk@users.noreply.github.com> Date: Sun, 1 Aug 2021 17:33:55 +0800 Subject: [PATCH 093/168] Add descriptions to IFC Search function (#1618) * Added descriptions to IFC Search function * change color to colour --- src/blenderbim/blenderbim/bim/module/search/operator.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/search/operator.py b/src/blenderbim/blenderbim/bim/module/search/operator.py index 10127f62d2..3b39499657 100644 --- a/src/blenderbim/blenderbim/bim/module/search/operator.py +++ b/src/blenderbim/blenderbim/bim/module/search/operator.py @@ -40,6 +40,7 @@ def does_keyword_exist(pattern, string, context): class SelectGlobalId(bpy.types.Operator): + """Click to select the objects that match with the given Global ID""" bl_idname = "bim.select_global_id" bl_label = "Select GlobalId" bl_options = {"REGISTER", "UNDO"} @@ -60,6 +61,7 @@ class SelectGlobalId(bpy.types.Operator): class SelectIfcClass(bpy.types.Operator): + """Click to select all objects that match with the given IFC class""" bl_idname = "bim.select_ifc_class" bl_label = "Select IFC Class" bl_options = {"REGISTER", "UNDO"} @@ -77,6 +79,7 @@ class SelectIfcClass(bpy.types.Operator): class SelectAttribute(bpy.types.Operator): + """Click to select all objects that match with the given Attribute Name and Value""" bl_idname = "bim.select_attribute" bl_label = "Select Attribute" bl_options = {"REGISTER", "UNDO"} @@ -101,6 +104,7 @@ class SelectAttribute(bpy.types.Operator): class SelectPset(bpy.types.Operator): + """Click to select all objects that match with the given Pset Name, Properties Name and Value""" bl_idname = "bim.select_pset" bl_label = "Select Pset" bl_options = {"REGISTER", "UNDO"} @@ -133,6 +137,7 @@ class SelectPset(bpy.types.Operator): class ColourByAttribute(bpy.types.Operator): + """Click to colour different objects according to given Attribute Name""" bl_idname = "bim.colour_by_attribute" bl_label = "Colour by Attribute" bl_options = {"REGISTER", "UNDO"} @@ -182,6 +187,7 @@ class ColourByAttribute(bpy.types.Operator): class ColourByPset(bpy.types.Operator): + """Click to colour different objects according to given Prop Name""" bl_idname = "bim.colour_by_pset" bl_label = "Colour by Pset" bl_options = {"REGISTER", "UNDO"} @@ -239,6 +245,7 @@ class ColourByPset(bpy.types.Operator): class ColourByClass(bpy.types.Operator): + """Click to colour different objects according to their IFC Classes""" bl_idname = "bim.colour_by_class" bl_label = "Colour by Class" bl_options = {"REGISTER", "UNDO"} @@ -283,6 +290,7 @@ class ColourByClass(bpy.types.Operator): class ResetObjectColours(bpy.types.Operator): + """Reset the colour of selected objects""" bl_idname = "bim.reset_object_colours" bl_label = "Reset Colours" From 557f8e6d69cc0061015551d16f5b245b4faae77c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 2 Aug 2021 20:32:16 +1000 Subject: [PATCH 094/168] New ifcopenshell.geom.tree based broadphase collision for IfcClash instead of aabbtree. Also, upgrades for new bcf.v2 namespace implemented. See #1357. --- src/ifcclash/collision.py | 663 ------------------------------ src/ifcclash/ifcclash.py | 454 -------------------- src/ifcclash/ifcclash/collider.py | 84 ++-- src/ifcclash/ifcclash/ifcclash.py | 113 +++-- 4 files changed, 90 insertions(+), 1224 deletions(-) delete mode 100644 src/ifcclash/collision.py delete mode 100644 src/ifcclash/ifcclash.py diff --git a/src/ifcclash/collision.py b/src/ifcclash/collision.py deleted file mode 100644 index b5dcf620f5..0000000000 --- a/src/ifcclash/collision.py +++ /dev/null @@ -1,663 +0,0 @@ -# This code is taken from the trimesh project at https://github.com/mikedh/trimesh/blob/master/trimesh/collision.py -# License MIT https://github.com/mikedh/trimesh/blob/master/LICENSE.md - -import numpy as np - -import collections - -try: - # pip install python-fcl - import fcl -except BaseException: - fcl = None - - -class ContactData(object): - """ - Data structure for holding information about a collision contact. - """ - - def __init__(self, names, contact): - """ - Initialize a ContactData. - - Parameters - ---------- - names : list of str - The names of the two objects in order. - contact : fcl.Contact - The contact in question. - """ - self.names = names - self._inds = {names[0]: contact.b1, names[1]: contact.b2} - self._point = contact.pos - self.raw = contact - - @property - def point(self): - """ - The 3D point of intersection for this contact. - - Returns - ------- - point : (3,) float - The intersection point. - """ - return self._point - - def index(self, name): - """ - Returns the index of the face in contact for the mesh with - the given name. - - Parameters - ---------- - name : str - The name of the target object. - - Returns - ------- - index : int - The index of the face in collison - """ - return self._inds[name] - - -class DistanceData(object): - """ - Data structure for holding information about a distance query. - """ - - def __init__(self, names, result): - """ - Initialize a DistanceData. - - Parameters - ---------- - names : list of str - The names of the two objects in order. - contact : fcl.DistanceResult - The distance query result. - """ - self.names = set(names) - self._inds = {names[0]: result.b1, names[1]: result.b2} - self._points = {names[0]: result.nearest_points[0], names[1]: result.nearest_points[1]} - self._distance = result.min_distance - - @property - def distance(self): - """ - Returns the distance between the two objects. - - Returns - ------- - distance : float - The euclidean distance between the objects. - """ - return self._distance - - def index(self, name): - """ - Returns the index of the closest face for the mesh with - the given name. - - Parameters - ---------- - name : str - The name of the target object. - - Returns - ------- - index : int - The index of the face in collisoin. - """ - return self._inds[name] - - def point(self, name): - """ - The 3D point of closest distance on the mesh with the given name. - - Parameters - ---------- - name : str - The name of the target object. - - Returns - ------- - point : (3,) float - The closest point. - """ - return self._points[name] - - -class CollisionManager(object): - """ - A mesh-mesh collision manager. - """ - - def __init__(self): - """ - Initialize a mesh-mesh collision manager. - """ - if fcl is None: - raise ValueError("No FCL Available!") - # {name: {geom:, obj}} - self._objs = {} - # {id(bvh) : str, name} - # unpopulated values will return None - self._names = collections.defaultdict(lambda: None) - - # cache BVH objects - # {mesh.md5(): fcl.BVHModel object} - self._bvh = {} - self._manager = fcl.DynamicAABBTreeCollisionManager() - self._manager.setup() - - def add_object(self, name, mesh, transform=None): - """ - Add an object to the collision manager. - - If an object with the given name is already in the manager, - replace it. - - Parameters - ---------- - name : str - An identifier for the object - mesh : Trimesh object - The geometry of the collision object - transform : (4,4) float - Homogeneous transform matrix for the object - """ - - # if no transform passed, assume identity transform - if transform is None: - transform = np.eye(4) - transform = np.asanyarray(transform, dtype=np.float64) - if transform.shape != (4, 4): - raise ValueError("transform must be (4,4)!") - - # create or recall from cache BVH - bvh = self._get_BVH(mesh) - # create the FCL transform from (4,4) matrix - t = fcl.Transform(transform[:3, :3], transform[:3, 3]) - o = fcl.CollisionObject(bvh, t) - - # Add collision object to set - if name in self._objs: - self._manager.unregisterObject(self._objs[name]) - self._objs[name] = {"obj": o, "geom": bvh} - # store the name of the geometry - self._names[id(bvh)] = name - - self._manager.registerObject(o) - self._manager.update() - return o - - def remove_object(self, name): - """ - Delete an object from the collision manager. - - Parameters - ---------- - name : str - The identifier for the object - """ - if name in self._objs: - self._manager.unregisterObject(self._objs[name]["obj"]) - self._manager.update(self._objs[name]["obj"]) - # remove objects from _objs - geom_id = id(self._objs.pop(name)["geom"]) - # remove names - self._names.pop(geom_id) - else: - raise ValueError("{} not in collision manager!".format(name)) - - def set_transform(self, name, transform): - """ - Set the transform for one of the manager's objects. - This replaces the prior transform. - - Parameters - ---------- - name : str - An identifier for the object already in the manager - transform : (4,4) float - A new homogeneous transform matrix for the object - """ - if name in self._objs: - o = self._objs[name]["obj"] - o.setRotation(transform[:3, :3]) - o.setTranslation(transform[:3, 3]) - self._manager.update(o) - else: - raise ValueError("{} not in collision manager!".format(name)) - - def in_collision_single(self, mesh, transform=None, return_names=False, return_data=False): - """ - Check a single object for collisions against all objects in the - manager. - - Parameters - ---------- - mesh : Trimesh object - The geometry of the collision object - transform : (4,4) float - Homogeneous transform matrix - return_names : bool - If true, a set is returned containing the names - of all objects in collision with the object - return_data : bool - If true, a list of ContactData is returned as well - - Returns - ------------ - is_collision : bool - True if a collision occurs and False otherwise - names : set of str - [OPTIONAL] The set of names of objects that collided with the - provided one - contacts : list of ContactData - [OPTIONAL] All contacts detected - """ - if transform is None: - transform = np.eye(4) - - # Create FCL data - b = self._get_BVH(mesh) - t = fcl.Transform(transform[:3, :3], transform[:3, 3]) - o = fcl.CollisionObject(b, t) - - # Collide with manager's objects - cdata = fcl.CollisionData() - if return_names or return_data: - cdata = fcl.CollisionData(request=fcl.CollisionRequest(num_max_contacts=100000, enable_contact=True)) - - self._manager.collide(o, cdata, fcl.defaultCollisionCallback) - result = cdata.result.is_collision - - # If we want to return the objects that were collision, collect them. - objs_in_collision = set() - contact_data = [] - if return_names or return_data: - for contact in cdata.result.contacts: - cg = contact.o1 - if cg == b: - cg = contact.o2 - name = self._extract_name(cg) - - names = (name, "__external") - if cg == contact.o2: - names = reversed(names) - - if return_names: - objs_in_collision.add(name) - if return_data: - contact_data.append(ContactData(names, contact)) - - if return_names and return_data: - return result, objs_in_collision, contact_data - elif return_names: - return result, objs_in_collision - elif return_data: - return result, contact_data - else: - return result - - def in_collision_internal(self, return_names=False, return_data=False): - """ - Check if any pair of objects in the manager collide with one another. - - Parameters - ---------- - return_names : bool - If true, a set is returned containing the names - of all pairs of objects in collision. - return_data : bool - If true, a list of ContactData is returned as well - - Returns - ------- - is_collision : bool - True if a collision occurred between any pair of objects - and False otherwise - names : set of 2-tup - The set of pairwise collisions. Each tuple - contains two names in alphabetical order indicating - that the two corresponding objects are in collision. - contacts : list of ContactData - All contacts detected - """ - cdata = fcl.CollisionData() - if return_names or return_data: - cdata = fcl.CollisionData(request=fcl.CollisionRequest(num_max_contacts=1000000, enable_contact=True)) - - self._manager.collide(cdata, fcl.defaultCollisionCallback) - - result = cdata.result.is_collision - - objs_in_collision = set() - contact_data = [] - if return_names or return_data: - for contact in cdata.result.contacts: - names = (self._extract_name(contact.o1), self._extract_name(contact.o2)) - - if return_names: - objs_in_collision.add(tuple(sorted(names))) - if return_data: - contact_data.append(ContactData(names, contact)) - - if return_names and return_data: - return result, objs_in_collision, contact_data - elif return_names: - return result, objs_in_collision - elif return_data: - return result, contact_data - else: - return result - - def in_collision_other(self, other_manager, return_names=False, return_data=False): - """ - Check if any object from this manager collides with any object - from another manager. - - Parameters - ------------------- - other_manager : CollisionManager - Another collision manager object - return_names : bool - If true, a set is returned containing the names - of all pairs of objects in collision. - return_data : bool - If true, a list of ContactData is returned as well - - Returns - ------------- - is_collision : bool - True if a collision occurred between any pair of objects - and False otherwise - names : set of 2-tup - The set of pairwise collisions. Each tuple - contains two names (first from this manager, - second from the other_manager) indicating - that the two corresponding objects are in collision. - contacts : list of ContactData - All contacts detected - """ - cdata = fcl.CollisionData() - if return_names or return_data: - cdata = fcl.CollisionData(request=fcl.CollisionRequest(num_max_contacts=100000, enable_contact=True)) - self._manager.collide(other_manager._manager, cdata, fcl.defaultCollisionCallback) - result = cdata.result.is_collision - - objs_in_collision = set() - contact_data = [] - if return_names or return_data: - for contact in cdata.result.contacts: - reverse = False - names = (self._extract_name(contact.o1), other_manager._extract_name(contact.o2)) - if names[0] is None: - names = (self._extract_name(contact.o2), other_manager._extract_name(contact.o1)) - reverse = True - - if return_names: - objs_in_collision.add(names) - if return_data: - if reverse: - names = reversed(names) - contact_data.append(ContactData(names, contact)) - - if return_names and return_data: - return result, objs_in_collision, contact_data - elif return_names: - return result, objs_in_collision - elif return_data: - return result, contact_data - else: - return result - - def min_distance_single(self, mesh, transform=None, return_name=False, return_data=False): - """ - Get the minimum distance between a single object and any - object in the manager. - - Parameters - --------------- - mesh : Trimesh object - The geometry of the collision object - transform : (4,4) float - Homogeneous transform matrix for the object - return_names : bool - If true, return name of the closest object - return_data : bool - If true, a DistanceData object is returned as well - - Returns - ------------- - distance : float - Min distance between mesh and any object in the manager - name : str - The name of the object in the manager that was closest - data : DistanceData - Extra data about the distance query - """ - if transform is None: - transform = np.eye(4) - - # Create FCL data - b = self._get_BVH(mesh) - - t = fcl.Transform(transform[:3, :3], transform[:3, 3]) - o = fcl.CollisionObject(b, t) - - # Collide with manager's objects - ddata = fcl.DistanceData() - if return_data: - ddata = fcl.DistanceData(fcl.DistanceRequest(enable_nearest_points=True), fcl.DistanceResult()) - - self._manager.distance(o, ddata, fcl.defaultDistanceCallback) - - distance = ddata.result.min_distance - - # If we want to return the objects that were collision, collect them. - name, data = None, None - if return_name or return_data: - cg = ddata.result.o1 - if cg == b: - cg = ddata.result.o2 - - name = self._extract_name(cg) - - names = (name, "__external") - if cg == ddata.result.o2: - names = reversed(names) - data = DistanceData(names, ddata.result) - - if return_name and return_data: - return distance, name, data - elif return_name: - return distance, name - elif return_data: - return distance, data - else: - return distance - - def min_distance_internal(self, return_names=False, return_data=False): - """ - Get the minimum distance between any pair of objects in the manager. - - Parameters - ------------- - return_names : bool - If true, a 2-tuple is returned containing the names - of the closest objects. - return_data : bool - If true, a DistanceData object is returned as well - - Returns - ----------- - distance : float - Min distance between any two managed objects - names : (2,) str - The names of the closest objects - data : DistanceData - Extra data about the distance query - """ - ddata = fcl.DistanceData() - if return_data: - ddata = fcl.DistanceData(fcl.DistanceRequest(enable_nearest_points=True), fcl.DistanceResult()) - - self._manager.distance(ddata, fcl.defaultDistanceCallback) - - distance = ddata.result.min_distance - - names, data = None, None - if return_names or return_data: - names = (self._extract_name(ddata.result.o1), self._extract_name(ddata.result.o2)) - data = DistanceData(names, ddata.result) - names = tuple(sorted(names)) - - if return_names and return_data: - return distance, names, data - elif return_names: - return distance, names - elif return_data: - return distance, data - else: - return distance - - def min_distance_other(self, other_manager, return_names=False, return_data=False): - """ - Get the minimum distance between any pair of objects, - one in each manager. - - Parameters - ---------- - other_manager : CollisionManager - Another collision manager object - return_names : bool - If true, a 2-tuple is returned containing - the names of the closest objects. - return_data : bool - If true, a DistanceData object is returned as well - - Returns - ----------- - distance : float - The min distance between a pair of objects, - one from each manager. - names : 2-tup of str - A 2-tuple containing two names (first from this manager, - second from the other_manager) indicating - the two closest objects. - data : DistanceData - Extra data about the distance query - """ - ddata = fcl.DistanceData() - if return_data: - ddata = fcl.DistanceData(fcl.DistanceRequest(enable_nearest_points=True), fcl.DistanceResult()) - - self._manager.distance(other_manager._manager, ddata, fcl.defaultDistanceCallback) - - distance = ddata.result.min_distance - - names, data = None, None - if return_names or return_data: - reverse = False - names = (self._extract_name(ddata.result.o1), other_manager._extract_name(ddata.result.o2)) - if names[0] is None: - reverse = True - names = (self._extract_name(ddata.result.o2), other_manager._extract_name(ddata.result.o1)) - - dnames = tuple(names) - if reverse: - dnames = reversed(dnames) - data = DistanceData(dnames, ddata.result) - - if return_names and return_data: - return distance, names, data - elif return_names: - return distance, names - elif return_data: - return distance, data - else: - return distance - - def _get_BVH(self, mesh): - """ - Get a BVH for a mesh. - - Parameters - ------------- - mesh : Trimesh - Mesh to create BVH for - - Returns - -------------- - bvh : fcl.BVHModel - BVH object of source mesh - """ - bvh = mesh_to_BVH(mesh) - return bvh - - def _extract_name(self, geom): - """ - Retrieve the name of an object from the manager by its - CollisionObject, or return None if not found. - - Parameters - ----------- - geom : CollisionObject or BVHModel - Input model - - Returns - ------------ - names : hashable - Name of input geometry - """ - return self._names[id(geom)] - - -def mesh_to_BVH(mesh): - """ - Create a BVHModel object from a Trimesh object - - Parameters - ----------- - mesh : Trimesh - Input geometry - - Returns - ------------ - bvh : fcl.BVHModel - BVH of input geometry - """ - bvh = fcl.BVHModel() - bvh.beginModel(num_tris_=len(mesh.faces), num_vertices_=len(mesh.vertices)) - bvh.addSubModel(verts=mesh.vertices, triangles=mesh.faces) - bvh.endModel() - return bvh - - -def scene_to_collision(scene): - """ - Create collision objects from a trimesh.Scene object. - - Parameters - ------------ - scene : trimesh.Scene - Scene to create collision objects for - - Returns - ------------ - manager : CollisionManager - CollisionManager for objects in scene - objects: {node name: CollisionObject} - Collision objects for nodes in scene - """ - manager = CollisionManager() - objects = {} - for node in scene.graph.nodes_geometry: - T, geometry = scene.graph[node] - objects[node] = manager.add_object(name=node, mesh=scene.geometry[geometry], transform=T) - return manager, objects diff --git a/src/ifcclash/ifcclash.py b/src/ifcclash/ifcclash.py deleted file mode 100644 index a17cc79d00..0000000000 --- a/src/ifcclash/ifcclash.py +++ /dev/null @@ -1,454 +0,0 @@ -#!/usr/bin/env python3 - -import collision -import ifcopenshell -import ifcopenshell.geom -import ifcopenshell.util.selector -import multiprocessing -import numpy as np -import json -import sys -import argparse -import logging - - -class Mesh: - faces: [] - vertices: [] - - -class IfcClasher: - def __init__(self, settings): - self.settings = settings - self.geom_settings = ifcopenshell.geom.settings() - self.clash_sets = [] - self.clash_data = {"meshes": {}} - self.global_data = {"meshes": {}, "matrices": {}} - - def clash(self): - for clash_set in self.clash_sets: - self.process_clash_set(clash_set) - - def process_clash_set(self, clash_set): - for ab in ["a", "b"]: - self.settings.logger.info(f"Creating collision manager {ab} ...") - clash_set[f"{ab}_cm"] = collision.CollisionManager() - self.settings.logger.info(f"Loading files {ab} ...") - for data in clash_set[ab]: - data["ifc"] = ifcopenshell.open(data["file"]) - self.patch_ifc(data["ifc"]) - self.settings.logger.info(f"Creating collision data for {ab} ...") - if len(data["ifc"].by_type("IfcElement")) > 0: - self.add_collision_objects(data, clash_set[f"{ab}_cm"]) - - if "b" in clash_set and clash_set["b"]: - results = clash_set["a_cm"].in_collision_other(clash_set["b_cm"], return_data=True) - else: - results = clash_set["a_cm"].in_collision_internal(return_data=True) - - if not results[0]: - return - - tolerance = clash_set["tolerance"] if "tolerance" in clash_set else 0.01 - clash_set["clashes"] = {} - - for contact in results[1]: - a_global_id, b_global_id = contact.names - a = self.get_element(clash_set["a"], a_global_id) - if "b" in clash_set and clash_set["b"]: - b = self.get_element(clash_set["b"], b_global_id) - else: - b = self.get_element(clash_set["a"], b_global_id) - if contact.raw.penetration_depth < tolerance: - continue - - # fcl returns contact data for faces that aren't actually - # penetrating, but just touching. If our tolerance is zero, then we - # consider these as clashes and we move on. If our tolerance is not - # zero, fcl has a strange behaviour where the penetration depth can - # be a large number even though objects are just touching - # https://github.com/flexible-collision-library/fcl/issues/503 In - # this case, I don't trust the penetration depth and I run my own - # triangle-triangle intersection test. Optimistically, this skips - # the false positives. Conservatively, we let the user manually deal - # with the false positives and we mark it as a clash. - is_optimistic = True # TODO: let user configure this - - if is_optimistic and tolerance != 0: - # We'll now check if the contact data's two faces are actually - # intersecting, using this brute force check: - # https://stackoverflow.com/questions/7113344/find-whether-two-triangles-intersect-or-not - # I'm not very good at this kind of code. If you know this stuff - # please help rewrite this. - - # Get vertices of clashing tris - p1 = self.global_data["meshes"][contact.names[0]].faces[contact.index(contact.names[0])] - p2 = self.global_data["meshes"][contact.names[1]].faces[contact.index(contact.names[1])] - m1 = self.global_data["matrices"][contact.names[0]] - m2 = self.global_data["matrices"][contact.names[1]] - v1 = [] - v2 = [] - - for v in p1: - v1.append( - (m1 @ np.array([*self.global_data["meshes"][contact.names[0]].vertices[v], 1]))[0:3].round(2) - ) - for v in p2: - v2.append( - (m2 @ np.array([*self.global_data["meshes"][contact.names[1]].vertices[v], 1]))[0:3].round(2) - ) - - tri1_x = 0 - tri2_x = 0 - tri1_x += 1 if self.intersect_line_triangle(v1[0], v1[1], v2[0], v2[1], v2[2]) is not None else 0 - tri1_x += 1 if self.intersect_line_triangle(v1[1], v1[2], v2[0], v2[1], v2[2]) is not None else 0 - tri1_x += 1 if self.intersect_line_triangle(v1[2], v1[0], v2[0], v2[1], v2[2]) is not None else 0 - - tri2_x += 1 if self.intersect_line_triangle(v2[0], v2[1], v1[0], v1[1], v1[2]) is not None else 0 - tri2_x += 1 if self.intersect_line_triangle(v2[1], v2[2], v1[0], v1[1], v1[2]) is not None else 0 - tri2_x += 1 if self.intersect_line_triangle(v2[2], v2[0], v1[0], v1[1], v1[2]) is not None else 0 - intersections = [tri1_x, tri2_x] - if intersections == [0, 2] or intersections == [2, 0] or intersections == [1, 1]: - # This is a penetrating collision - pass - else: - # This is probably two triangles which just touch - continue - - key = f"{a_global_id}-{b_global_id}" - - if ( - key in clash_set["clashes"] - and clash_set["clashes"][key]["penetration_depth"] > contact.raw.penetration_depth - ): - continue - - clash_set["clashes"][key] = { - "a_global_id": a_global_id, - "b_global_id": b_global_id, - "a_ifc_class": a.is_a(), - "b_ifc_class": b.is_a(), - "a_name": a.Name, - "b_name": b.Name, - "normal": list(contact.raw.normal), - "position": list(contact.raw.pos), - "penetration_depth": contact.raw.penetration_depth, - } - - # https://stackoverflow.com/questions/42740765/intersection-between-line-and-triangle-in-3d - def intersect_line_triangle(self, q1, q2, p1, p2, p3): - def signed_tetra_volume(a, b, c, d): - return np.sign(np.dot(np.cross(b - a, c - a), d - a) / 6.0) - - s1 = signed_tetra_volume(q1, p1, p2, p3) - s2 = signed_tetra_volume(q2, p1, p2, p3) - - if s1 != s2: - s3 = signed_tetra_volume(q1, q2, p1, p2) - s4 = signed_tetra_volume(q1, q2, p2, p3) - s5 = signed_tetra_volume(q1, q2, p3, p1) - if s3 == s4 and s4 == s5: - n = np.cross(p2 - p1, p3 - p1) - t = -np.dot(q1, n - p1) / np.dot(q1, q2 - q1) - return q1 + t * (q2 - q1) - return None - - def export(self): - if len(self.settings.output) > 4 and self.settings.output[-4:] == ".bcf": - return self.export_bcfxml() - self.export_json() - - def export_bcfxml(self): - import bcf - import bcf.bcfxml - - for i, clash_set in enumerate(self.clash_sets): - bcfxml = bcf.bcfxml.BcfXml() - bcfxml.new_project() - bcfxml.project.name = clash_set["name"] - bcfxml.edit_project() - for key, clash in clash_set["clashes"].items(): - topic = bcf.data.Topic() - topic.title = "{}/{} and {}/{}".format( - clash["a_ifc_class"], clash["a_name"], clash["b_ifc_class"], clash["b_name"] - ) - topic = bcfxml.add_topic(topic) - viewpoint = bcf.data.Viewpoint() - viewpoint.perspective_camera = bcf.data.PerspectiveCamera() - position = np.array(clash["position"]) - point = position + np.array((5, 5, 5)) # Dumb, but works! - viewpoint.perspective_camera.camera_view_point.x = point[0] - viewpoint.perspective_camera.camera_view_point.y = point[1] - viewpoint.perspective_camera.camera_view_point.z = point[2] - mat = self.get_track_to_matrix(point, position) - viewpoint.perspective_camera.camera_direction.x = mat[0][2] * -1 - viewpoint.perspective_camera.camera_direction.y = mat[1][2] * -1 - viewpoint.perspective_camera.camera_direction.z = mat[2][2] * -1 - viewpoint.perspective_camera.camera_up_vector.x = mat[0][1] - viewpoint.perspective_camera.camera_up_vector.y = mat[1][1] - viewpoint.perspective_camera.camera_up_vector.z = mat[2][1] - viewpoint.components = bcf.data.Components() - c1 = bcf.data.Component() - c1.ifc_guid = clash["a_global_id"] - c2 = bcf.data.Component() - c2.ifc_guid = clash["b_global_id"] - viewpoint.components.selection.append(c1) - viewpoint.components.selection.append(c2) - viewpoint.components.visibility = bcf.data.ComponentVisibility() - viewpoint.components.visibility.default_visibility = True - viewpoint.snapshot = self.get_viewpoint_snapshot(viewpoint, mat) - bcfxml.add_viewpoint(topic, viewpoint) - if i == 0: - bcfxml.save_project(self.settings.output) - else: - bcfxml.save_project(self.settings.output + f".{i}") - - def get_viewpoint_snapshot(self, viewpoint, mat): - return None # Possible to overload this function in a GUI application if used as a library - - # https://blender.stackexchange.com/questions/68834/recreate-to-track-quat-with-two-vectors-using-python/141706#141706 - def get_track_to_matrix(self, camera_position, target_position): - camera_direction = camera_position - target_position - camera_direction = camera_direction / np.linalg.norm(camera_direction) - camera_right = np.cross(np.array([0.0, 0.0, 1.0]), camera_direction) - camera_right = camera_right / np.linalg.norm(camera_right) - camera_up = np.cross(camera_direction, camera_right) - camera_up = camera_up / np.linalg.norm(camera_up) - rotation_transform = np.zeros((4, 4)) - rotation_transform[0, :3] = camera_right - rotation_transform[1, :3] = camera_up - rotation_transform[2, :3] = camera_direction - rotation_transform[-1, -1] = 1 - translation_transform = np.eye(4) - translation_transform[:3, -1] = - camera_position - look_at_transform = np.matmul(rotation_transform, translation_transform) - return np.linalg.inv(look_at_transform) - - def export_json(self): - results = self.clash_sets.copy() - for result in results: - del result["a_cm"] - del result["b_cm"] - for ab in ["a", "b"]: - for data in result[ab]: - if "ifc" in data: - del data["ifc"] - with open(self.settings.output, "w", encoding="utf-8") as clashes_file: - json.dump(results, clashes_file, indent=4) - - def get_element(self, clash_group, global_id): - for data in clash_group: - try: - element = data["ifc"].by_guid(global_id) - if element: - return element - except: - pass - - def add_collision_objects(self, data, cm): - self.clash_data["meshes"] = {} - selector = ifcopenshell.util.selector.Selector() - if "selector" not in data: - iterator = ifcopenshell.geom.iterator( - self.geom_settings, - data["ifc"], - multiprocessing.cpu_count(), - exclude=(data["ifc"].by_type("IfcSpatialStructureElement")), - ) - elif data["mode"] == "e": - iterator = ifcopenshell.geom.iterator( - self.geom_settings, - data["ifc"], - multiprocessing.cpu_count(), - exclude=selector.parse(data["ifc"], data["selector"]), - ) - elif data["mode"] == "i": - iterator = ifcopenshell.geom.iterator( - self.geom_settings, - data["ifc"], - multiprocessing.cpu_count(), - include=selector.parse(data["ifc"], data["selector"]), - ) - valid_file = iterator.initialize() - if not valid_file: - return False - old_progress = -1 - while True: - progress = iterator.progress() // 2 - if progress > old_progress: - print("\r[" + "#" * progress + " " * (50 - progress) + "]", end="") - old_progress = progress - self.add_collision_object(data, cm, iterator.get()) - if not iterator.next(): - break - - def add_collision_object(self, data, cm, shape): - if shape is None: - return - element = data["ifc"].by_id(shape.guid) - self.settings.logger.info("Creating object {}".format(element)) - mesh_name = f"mesh-{shape.geometry.id}" - if mesh_name in self.clash_data["meshes"]: - mesh = self.clash_data["meshes"][mesh_name] - else: - mesh = self.create_mesh(shape) - self.clash_data["meshes"][mesh_name] = mesh - self.global_data["meshes"][shape.guid] = mesh - - m = shape.transformation.matrix.data - mat = np.array([[m[0], m[3], m[6], m[9]], [m[1], m[4], m[7], m[10]], [m[2], m[5], m[8], m[11]], [0, 0, 0, 1]]) - - mat.transpose() - self.global_data["matrices"][shape.guid] = mat - cm.add_object(shape.guid, mesh, mat) - - def create_mesh(self, shape): - f = shape.geometry.faces - v = shape.geometry.verts - mesh = Mesh() - mesh.vertices = np.array([[v[i], v[i + 1], v[i + 2]] for i in range(0, len(v), 3)]) - mesh.faces = np.array([[f[i], f[i + 1], f[i + 2]] for i in range(0, len(f), 3)]) - return mesh - - def patch_ifc(self, ifc_file): - project = ifc_file.by_type("IfcProject")[0] - sites = self.find_decomposed_ifc_class(project, "IfcSite") - for site in sites: - self.patch_placement_to_origin(site) - buildings = self.find_decomposed_ifc_class(project, "IfcBuilding") - for building in buildings: - self.patch_placement_to_origin(building) - - def find_decomposed_ifc_class(self, element, ifc_class): - results = [] - rel_aggregates = element.IsDecomposedBy - if not rel_aggregates: - return results - for rel_aggregate in rel_aggregates: - for part in rel_aggregate.RelatedObjects: - if part.is_a(ifc_class): - results.append(part) - results.extend(self.find_decomposed_ifc_class(part, ifc_class)) - return results - - def patch_placement_to_origin(self, element): - element.ObjectPlacement.RelativePlacement.Location.Coordinates = (0.0, 0.0, 0.0) - if element.ObjectPlacement.RelativePlacement.Axis: - element.ObjectPlacement.RelativePlacement.Axis.DirectionRatios = (0.0, 0.0, 1.0) - if element.ObjectPlacement.RelativePlacement.RefDirection: - element.ObjectPlacement.RelativePlacement.RefDirection.DirectionRatios = (1.0, 0.0, 0.0) - - def smart_group_clashes(self, clash_sets, max_clustering_distance): - from sklearn.cluster import OPTICS - from collections import defaultdict - - count_of_input_clashes = 0 - count_of_clash_sets = 0 - count_of_smart_groups = 0 - count_of_final_clash_sets = 0 - - count_of_clash_sets = len(clash_sets) - - for clash_set in clash_sets: - if not "clashes" in clash_set.keys(): - print(f"Skipping clash set [{clash_set['name']}] since it contains no clash results.") - continue - clashes = clash_set["clashes"] - if len(clashes) == 0: - print(f"Skipping clash set [{clash_set['name']}] since it contains no clash results.") - continue - - count_of_input_clashes += len(clashes) - - positions = [] - for clash in clashes.values(): - positions.append(clash["position"]) - - data = np.array(positions) - - # INPUTS - # set the desired maximum distance between the grouped points - if max_clustering_distance > 0: - max_distance_between_grouped_points = max_clustering_distance - else: - max_distance_between_grouped_points = 3 - - model = OPTICS(min_samples=2, max_eps=max_distance_between_grouped_points) - model.fit_predict(data) - pred = model.fit_predict(data) - - # Insert the smart groups into the clashes - if len(pred) == len(clashes.values()): - i = 0 - for clash in clashes.values(): - int_prediction = int(pred[i]) - if int_prediction == -1: - # ungroup this clash since it's a single clash that we were not able to group. - new_clash_group_number = np.amax(pred).item() + 1 + i - clash["smart_group"] = new_clash_group_number - else: - clash["smart_group"] = int_prediction - i += 1 - - # Create JSON with smart_groups that contain GlobalIDs - output_clash_sets = defaultdict(list) - for clash_set in clash_sets: - if not "clashes" in clash_set.keys(): - continue - smart_groups = defaultdict(list) - for clash_id, content in clash_set["clashes"].items(): - if "smart_group" in content: - object_id_list = list() - # Clash has been grouped, let's extract it. - object_id_list.append(content["a_global_id"]) - object_id_list.append(content["b_global_id"]) - smart_groups[content["smart_group"]].append(object_id_list) - count_of_smart_groups += len(smart_groups) - output_clash_sets[clash_set["name"]].append(smart_groups) - - # Rename the clash groups to something more sensible - for clash_set, smart_groups in output_clash_sets.items(): - clash_set_name = clash_set - # Only select the clashes that correspond to the actively selected IFC Clash Set - i = 1 - new_smart_group_name = "" - for smart_group, global_id_pairs in list(smart_groups[0].items()): - new_smart_group_name = f"{clash_set_name} - {i}" - smart_groups[0][new_smart_group_name] = smart_groups[0].pop(smart_group) - i += 1 - - count_of_final_clash_sets = len(output_clash_sets) - print( - f"Took {count_of_input_clashes} clashes in {count_of_clash_sets} clash sets and turned", - f"them into {count_of_smart_groups} smart groups in {count_of_final_clash_sets} clash sets", - ) - - return output_clash_sets - - -class IfcClashSettings: - def __init__(self): - self.logger = None - self.output = "clashes.json" - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Clashes geometry between two IFC files") - parser.add_argument("input", type=str, help="A JSON dataset describing a series of clashsets") - parser.add_argument( - "-o", "--output", type=str, help="The JSON diff file to output. Defaults to output.json", default="output.json" - ) - args = parser.parse_args() - - settings = IfcClashSettings() - settings.output = args.output - settings.logger = logging.getLogger("Clash") - settings.logger.setLevel(logging.DEBUG) - handler = logging.StreamHandler(sys.stdout) - handler.setLevel(logging.DEBUG) - settings.logger.addHandler(handler) - ifc_clasher = IfcClasher(settings) - with open(args.input, "r") as clash_sets_file: - ifc_clasher.clash_sets = json.loads(clash_sets_file.read()) - ifc_clasher.clash() - ifc_clasher.export() diff --git a/src/ifcclash/ifcclash/collider.py b/src/ifcclash/ifcclash/collider.py index 710ad3c1a4..a2fd0314d4 100644 --- a/src/ifcclash/ifcclash/collider.py +++ b/src/ifcclash/ifcclash/collider.py @@ -1,77 +1,73 @@ import hppfcl import numpy as np -from aabbtree import AABB -from aabbtree import AABBTree +import ifcopenshell class Collider: def __init__(self): self.groups = {} + self.tree = ifcopenshell.geom.tree() def create_group(self, name): - self.groups[name] = {"tree": AABBTree(), "objects": {}} + self.groups[name] = {"elements": {}, "objects": {}} + + def create_objects(self, name, ifc_file, iterator, elements): + self.tree.add_iterator(iterator) + self.groups[name]["elements"].update({e.GlobalId: e for e in elements}) + + # Temporary hack. See #1357. + import multiprocessing + + iterator = ifcopenshell.geom.iterator( + ifcopenshell.geom.settings(), ifc_file, multiprocessing.cpu_count(), include=elements + ) + valid_file = iterator.initialize() + if not valid_file: + return False + while True: + shape = iterator.get() + self.create_object(name, shape.guid, shape) + if not iterator.next(): + break def create_object(self, group_name, id, shape): obj = hppfcl.CollisionObject( self.create_bvh(shape.geometry), self.create_transform(shape.transformation.matrix.data) ) - aabb = obj.getAABB() - c = aabb.center() - x = aabb.width() - y = aabb.height() - z = aabb.depth() - aabb = AABB([(c[0] - x / 2, c[0] + x / 2), (c[1] - y / 2, c[1] + y / 2), (c[2] - z / 2, c[2] + z / 2)]) - self.groups[group_name]["tree"].add(aabb, id) - self.groups[group_name]["objects"][id] = (aabb, obj) + self.groups[group_name]["objects"][id] = obj def collide_internal(self, name): - print('starting internal collision') - return self.collide_narrowphase(self.collide_broadphase(name, name)) + return self.collide_narrowphase(name, name, self.collide_broadphase(name, name)) def collide_group(self, name1, name2): - print('starting group collision') - return self.collide_narrowphase(self.collide_broadphase(name1, name2)) + return self.collide_narrowphase(name1, name2, self.collide_broadphase(name1, name2)) def collide_broadphase(self, name1, name2): - print('Begin broad phase') potential_collisions = [] checked_collisions = set() - i = 0 - for id, obj_data in self.groups[name1]["objects"].items(): - aabb, obj = obj_data - collision_stack = [self.groups[name2]["tree"]] + for id, element in self.groups[name1]["elements"].items(): checked_collisions.add(id) - i += 1 - while i % 1000 == 0: - print(i, '...') - while collision_stack: - node = collision_stack.pop() - if node.value == id or node.value in checked_collisions: - continue - if node.does_overlap(aabb): - if node.is_leaf: - potential_collisions.append( - { - "id1": id, - "obj1": obj, - "id2": node.value, - "obj2": self.groups[name2]["objects"][node.value][1], - } - ) - else: - collision_stack.append(node.left) - collision_stack.append(node.right) + box_filter = self.tree.select_box(element) + pairs = [ + {"id1": id, "id2": e.GlobalId} + for e in box_filter + if e.GlobalId not in checked_collisions and e.GlobalId in self.groups[name2]["elements"] + ] + potential_collisions.extend(pairs) return potential_collisions - def collide_narrowphase(self, potential_collisions): - print('Begin narrow phase') + def collide_narrowphase(self, name1, name2, potential_collisions): collisions = [] for data in potential_collisions: result = hppfcl.CollisionResult() - hppfcl.collide(data["obj1"], data["obj2"], hppfcl.CollisionRequest(), result) + hppfcl.collide( + self.groups[name1]["objects"][data["id1"]], + self.groups[name2]["objects"][data["id2"]], + hppfcl.CollisionRequest(), + result, + ) if result.isCollision(): collisions.append({"id1": data["id1"], "id2": data["id2"], "collision": result}) - print({"id1": data["id1"], "id2": data["id2"], "collision": result}) return collisions def create_transform(self, m): diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py index 6e51fa7e2c..6dd16c12e6 100644 --- a/src/ifcclash/ifcclash/ifcclash.py +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -1,21 +1,21 @@ #!/usr/bin/env python3 -import ifcopenshell -import ifcopenshell.geom -import ifcopenshell.util.selector -import multiprocessing import numpy as np import json import sys import argparse import logging +import multiprocessing +import ifcopenshell +import ifcopenshell.geom +import ifcopenshell.util.selector from . import collider class Clasher: def __init__(self, settings): self.settings = settings - self.geom_settings = ifcopenshell.geom.settings() + self.geom_settings = ifcopenshell.geom.settings(DISABLE_TRIANGULATION=True) self.clash_sets = [] self.collider = collider.Collider() self.selector = ifcopenshell.util.selector.Selector() @@ -23,36 +23,45 @@ class Clasher: def clash(self): existing_limit = sys.getrecursionlimit() - sys.setrecursionlimit(100000) for clash_set in self.clash_sets: self.process_clash_set(clash_set) - sys.setrecursionlimit(existing_limit) def process_clash_set(self, clash_set): - print("proccessings", clash_set) self.collider.create_group("a") for source in clash_set["a"]: - self.add_collision_objects( - "a", self.load_ifc(source["file"]), source.get("mode", None), source.get("selector", None) - ) + source["ifc"] = self.load_ifc(source["file"]) + self.add_collision_objects("a", source["ifc"], source.get("mode", None), source.get("selector", None)) if "b" in clash_set: self.collider.create_group("b") for source in clash_set["b"]: - self.add_collision_objects( - "b", self.load_ifc(source["file"]), source.get("mode", None), source.get("selector", None) - ) + source["ifc"] = self.load_ifc(source["file"]) + self.add_collision_objects("b", source["ifc"], source.get("mode", None), source.get("selector", None)) results = self.collider.collide_group("a", "b") else: results = self.collider.collide_internal("a") + processed_results = {} for result in results: - print("*" * 10) - print("Is Collision:", result["collision"].isCollision()) - print(result["id1"], result["id2"]) - print("Number of contacts:", result["collision"].numContacts()) - for contact in result["collision"].getContacts(): - print(contact) + element1 = self.get_element(clash_set["a"], result["id1"]) + if "b" in clash_set: + element2 = self.get_element(clash_set["b"], result["id2"]) + else: + element2 = self.get_element(clash_set["1"], result["id2"]) + + contact = result["collision"].getContacts()[0] + processed_results[f"{result['id1']}-{result['id2']}"] = { + "a_global_id": result["id1"], + "b_global_id": result["id2"], + "a_ifc_class": element1.is_a(), + "b_ifc_class": element2.is_a(), + "a_name": element1.Name, + "b_name": element2.Name, + "normal": list(contact.normal), + "position": list(contact.pos), + "penetration_depth": contact.penetration_depth, + } + clash_set["clashes"] = processed_results def load_ifc(self, path): ifc = self.ifcs.get(path, None) @@ -62,37 +71,17 @@ class Clasher: return ifc def add_collision_objects(self, name, ifc_file, mode=None, selector=None): - print('adding collision objects', name) if not mode: - iterator = ifcopenshell.geom.iterator( - self.geom_settings, - ifc_file, - multiprocessing.cpu_count(), - exclude=(ifc_file.by_type("IfcSpatialStructureElement")), - ) + elements = ifc_file.by_type("IfcElement") elif mode == "e": - iterator = ifcopenshell.geom.iterator( - self.geom_settings, - ifc_file, - multiprocessing.cpu_count(), - exclude=selector.parse(ifc_file, selector), - ) + exclude = self.selector.parse(ifc_file, selector) + elements = [e for e in ifc_file.by_type("IfcElement") if e not in exclude] elif mode == "i": - iterator = ifcopenshell.geom.iterator( - self.geom_settings, - ifc_file, - multiprocessing.cpu_count(), - include=selector.parse(ifc_file, selector), - ) - valid_file = iterator.initialize() - if not valid_file: - return False - old_progress = -1 - while True: - shape = iterator.get() - self.collider.create_object(name, shape.guid, shape) - if not iterator.next(): - break + elements = self.selector.parse(ifc_file, selector) + iterator = ifcopenshell.geom.iterator( + self.geom_settings, ifc_file, multiprocessing.cpu_count(), include=elements + ) + self.collider.create_objects(name, ifc_file, iterator, elements) def export(self): if len(self.settings.output) > 4 and self.settings.output[-4:] == ".bcf": @@ -101,23 +90,23 @@ class Clasher: def export_bcfxml(self): import bcf - import bcf.bcfxml + import bcf.v2.bcfxml for i, clash_set in enumerate(self.clash_sets): - bcfxml = bcf.bcfxml.BcfXml() + bcfxml = bcf.v2.bcfxml.BcfXml() bcfxml.new_project() bcfxml.project.name = clash_set["name"] bcfxml.edit_project() for key, clash in clash_set["clashes"].items(): - topic = bcf.data.Topic() + topic = bcf.v2.data.Topic() topic.title = "{}/{} and {}/{}".format( clash["a_ifc_class"], clash["a_name"], clash["b_ifc_class"], clash["b_name"] ) topic = bcfxml.add_topic(topic) - viewpoint = bcf.data.Viewpoint() - viewpoint.perspective_camera = bcf.data.PerspectiveCamera() + viewpoint = bcf.v2.data.Viewpoint() + viewpoint.perspective_camera = bcf.v2.data.PerspectiveCamera() position = np.array(clash["position"]) - point = position + np.array((5, 5, 5)) # Dumb, but works! + point = position + np.array((5, 5, 5)) # Dumb, but works (for now)! viewpoint.perspective_camera.camera_view_point.x = point[0] viewpoint.perspective_camera.camera_view_point.y = point[1] viewpoint.perspective_camera.camera_view_point.z = point[2] @@ -128,14 +117,14 @@ class Clasher: viewpoint.perspective_camera.camera_up_vector.x = mat[0][1] viewpoint.perspective_camera.camera_up_vector.y = mat[1][1] viewpoint.perspective_camera.camera_up_vector.z = mat[2][1] - viewpoint.components = bcf.data.Components() - c1 = bcf.data.Component() + viewpoint.components = bcf.v2.data.Components() + c1 = bcf.v2.data.Component() c1.ifc_guid = clash["a_global_id"] - c2 = bcf.data.Component() + c2 = bcf.v2.data.Component() c2.ifc_guid = clash["b_global_id"] viewpoint.components.selection.append(c1) viewpoint.components.selection.append(c2) - viewpoint.components.visibility = bcf.data.ComponentVisibility() + viewpoint.components.visibility = bcf.v2.data.ComponentVisibility() viewpoint.components.visibility.default_visibility = True viewpoint.snapshot = self.get_viewpoint_snapshot(viewpoint, mat) bcfxml.add_viewpoint(topic, viewpoint) @@ -168,8 +157,6 @@ class Clasher: def export_json(self): results = self.clash_sets.copy() for result in results: - del result["a_cm"] - del result["b_cm"] for ab in ["a", "b"]: for data in result[ab]: if "ifc" in data: @@ -177,10 +164,10 @@ class Clasher: with open(self.settings.output, "w", encoding="utf-8") as clashes_file: json.dump(results, clashes_file, indent=4) - def get_element(self, clash_group, global_id): - for data in clash_group: + def get_element(self, clash_set, global_id): + for source in clash_set: try: - element = data["ifc"].by_guid(global_id) + element = source["ifc"].by_guid(global_id) if element: return element except: From 7c0405fab0b526faae10270664674c8f6a641be7 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Tue, 3 Aug 2021 01:07:19 +0200 Subject: [PATCH 095/168] Improve UI for multi input string fields (#1617) * Add utility operator for CollectionProperty * Support Multi input string fields * Simplify people & organisation UI code * General-purpose code cleanup * Use more compact and user friendly UI --- .../blenderbim/bim/module/owner/__init__.py | 1 + .../blenderbim/bim/module/owner/operator.py | 122 +++++++++++------- .../blenderbim/bim/module/owner/prop.py | 18 +-- .../blenderbim/bim/module/owner/ui.py | 122 +++++++++--------- 4 files changed, 148 insertions(+), 115 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/owner/__init__.py b/src/blenderbim/blenderbim/bim/module/owner/__init__.py index a097f0fb07..592e0e0167 100644 --- a/src/blenderbim/blenderbim/bim/module/owner/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/owner/__init__.py @@ -2,6 +2,7 @@ import bpy from . import ui, prop, operator classes = ( + operator.AddOrRemoveElementFromCollection, operator.EnableEditingPerson, operator.DisableEditingPerson, operator.AddPerson, diff --git a/src/blenderbim/blenderbim/bim/module/owner/operator.py b/src/blenderbim/blenderbim/bim/module/owner/operator.py index 20e4affca3..744822911a 100644 --- a/src/blenderbim/blenderbim/bim/module/owner/operator.py +++ b/src/blenderbim/blenderbim/bim/module/owner/operator.py @@ -1,10 +1,49 @@ import bpy -import json import ifcopenshell.api from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.owner.data import Data +def flatten_collection(collection): + return [v.name for v in collection] if collection else None + + +def populate_collection(collection, collection_data): + collection.clear() + if collection_data: + for value in collection_data: + collection.add().name = value + else: + collection.add() + + +class AddOrRemoveElementFromCollection(bpy.types.Operator): + bl_idname = "bim.add_or_remove_element_from_collection" + bl_label = "Add or Remove Element From Collection" + bl_options = {"REGISTER", "UNDO"} + operation : bpy.props.EnumProperty( + items=( + ("+", 'Add', "Add item to collection"), + ("-", 'Remove', "Remove item from collection") + ), + default="+", + ) + collection_path : bpy.props.StringProperty() + selected_item_idx : bpy.props.IntProperty(default=-1) + + def execute(self, context): + # Ugly but I hate using eval() + collection = context.scene + for attr in self.collection_path.split("."): + if hasattr(collection, attr): + collection = getattr(collection, attr) + if self.operation == "+" and hasattr(collection, "add"): + collection.add() + elif hasattr(collection, "remove") and 0 <= self.selected_item_idx < len(collection): + collection.remove(self.selected_item_idx) + return {"FINISHED"} + + class EnableEditingPerson(bpy.types.Operator): bl_idname = "bim.enable_editing_person" bl_label = "Enable Editing Person" @@ -17,12 +56,13 @@ class EnableEditingPerson(bpy.types.Operator): props.active_person_id = self.person_id data = Data.people[self.person_id] name = data["Id"] if self.file.schema == "IFC2X3" else data["Identification"] - props.person.name = name or "" - props.person.family_name = data["FamilyName"] or "" - props.person.given_name = data["GivenName"] or "" - props.person.middle_names = json.dumps(data["MiddleNames"]) if data["MiddleNames"] else "" - props.person.prefix_titles = json.dumps(data["PrefixTitles"]) if data["PrefixTitles"] else "" - props.person.suffix_titles = json.dumps(data["SuffixTitles"]) if data["SuffixTitles"] else "" + person = props.person + person.name = name or "" + person.family_name = data["FamilyName"] or "" + person.given_name = data["GivenName"] or "" + populate_collection(person.middle_names, data.get("MiddleNames", None)) + populate_collection(person.prefix_titles, data.get("PrefixTitles", None)) + populate_collection(person.suffix_titles, data.get("SuffixTitles", None)) return {"FINISHED"} @@ -61,13 +101,14 @@ class EditPerson(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() props = context.scene.BIMOwnerProperties + person = props.person attributes = { - "Identification": props.person.name or None, - "FamilyName": props.person.family_name or None, - "GivenName": props.person.given_name or None, - "MiddleNames": json.loads(props.person.middle_names) if props.person.middle_names else None, - "PrefixTitles": json.loads(props.person.prefix_titles) if props.person.prefix_titles else None, - "SuffixTitles": json.loads(props.person.suffix_titles) if props.person.suffix_titles else None, + "Identification": person.name or None, + "FamilyName": person.family_name or None, + "GivenName": person.given_name or None, + "MiddleNames": flatten_collection(person.middle_names), + "PrefixTitles": flatten_collection(person.prefix_titles), + "SuffixTitles": flatten_collection(person.suffix_titles), } if self.file.schema == "IFC2X3": attributes["Id"] = attributes["Identification"] @@ -215,29 +256,28 @@ class EnableEditingAddress(bpy.types.Operator): props = context.scene.BIMOwnerProperties props.active_address_id = self.address_id data = Data.addresses[self.address_id] - props.address.name = data["type"] - props.address.purpose = data["Purpose"] or "None" - props.address.description = data["Description"] or "" - props.address.user_defined_purpose = data["UserDefinedPurpose"] or "" + address = props.address + address.name = data["type"] + address.purpose = data["Purpose"] or "None" + address.description = data["Description"] or "" + address.user_defined_purpose = data["UserDefinedPurpose"] or "" - if data["type"] == "IfcTelecomAddress": - props.address.telephone_numbers = json.dumps(data["TelephoneNumbers"]) if data["TelephoneNumbers"] else "" - props.address.facsimile_numbers = json.dumps(data["FacsimileNumbers"]) if data["FacsimileNumbers"] else "" - props.address.pager_number = data["PagerNumber"] or "" - props.address.electronic_mail_addresses = ( - json.dumps(data["ElectronicMailAddresses"]) if data["ElectronicMailAddresses"] else "" - ) - props.address.www_home_page_url = data["WWWHomePageURL"] or "" + if data["type"] == "IfcTelecomAddress": + populate_collection(address.telephone_numbers, data.get("TelephoneNumbers", None)) + populate_collection(address.facsimile_numbers, data.get("FacsimileNumbers", None)) + address.pager_number = data["PagerNumber"] or "" + populate_collection(address.electronic_mail_addresses, data.get("ElectronicMailAddresses", None)) + address.www_home_page_url = data["WWWHomePageURL"] or "" if self.file.schema != "IFC2X3": - props.address.messaging_ids = json.dumps(data["MessagingIDs"]) if data["MessagingIDs"] else "" + populate_collection(address.messaging_ids, data.get("MessagingIDs", None)) elif data["type"] == "IfcPostalAddress": - props.address.internal_location = data["InternalLocation"] or "" - props.address.address_lines = json.dumps(data["AddressLines"]) if data["AddressLines"] else "" - props.address.postal_box = data["PostalBox"] or "" - props.address.town = data["Town"] or "" - props.address.region = data["Region"] or "" - props.address.postal_code = data["PostalCode"] or "" - props.address.country = data["Country"] or "" + address.internal_location = data["InternalLocation"] or "" + populate_collection(address.address_lines, data.get("AddressLines", None)) + address.postal_box = data["PostalBox"] or "" + address.town = data["Town"] or "" + address.region = data["Region"] or "" + address.postal_code = data["PostalCode"] or "" + address.country = data["Country"] or "" return {"FINISHED"} @@ -273,18 +313,12 @@ class EditAddress(bpy.types.Operator): if address.is_a("IfcTelecomAddress"): attributes.update( { - "TelephoneNumbers": json.loads(props.address.telephone_numbers) - if props.address.telephone_numbers - else None, - "FacsimileNumbers": json.loads(props.address.facsimile_numbers) - if props.address.facsimile_numbers - else None, + "TelephoneNumbers": flatten_collection(props.address.telephone_numbers), + "FacsimileNumbers": flatten_collection(props.address.facsimile_numbers), "PagerNumber": props.address.pager_number or None, - "ElectronicMailAddresses": json.loads(props.address.electronic_mail_addresses) - if props.address.electronic_mail_addresses - else None, + "ElectronicMailAddresses": flatten_collection(props.address.electronic_mail_addresses), "WWWHomePageURL": props.address.www_home_page_url or None, - "MessagingIDs": json.loads(props.address.messaging_ids) if props.address.messaging_ids else None, + "MessagingIDs": flatten_collection(props.address.messaging_ids), } ) if self.file.schema == "IFC2X3": @@ -293,7 +327,7 @@ class EditAddress(bpy.types.Operator): attributes.update( { "InternalLocation": props.address.internal_location or None, - "AddressLines": json.loads(props.address.address_lines) if props.address.address_lines else None, + "AddressLines": flatten_collection(props.address.address_lines), "PostalBox": props.address.postal_box or None, "Town": props.address.town or None, "Region": props.address.region or None, diff --git a/src/blenderbim/blenderbim/bim/module/owner/prop.py b/src/blenderbim/blenderbim/bim/module/owner/prop.py index a92a6488fe..359d1cc129 100644 --- a/src/blenderbim/blenderbim/bim/module/owner/prop.py +++ b/src/blenderbim/blenderbim/bim/module/owner/prop.py @@ -54,19 +54,19 @@ class Address(PropertyGroup): user_defined_purpose: StringProperty(name="Custom Purpose") internal_location: StringProperty(name="Internal Location") - address_lines: StringProperty(name="Address") + address_lines: CollectionProperty(type=StrProperty, name="Address") postal_box: StringProperty(name="Postal Box") town: StringProperty(name="Town") region: StringProperty(name="Region") postal_code: StringProperty(name="Postal Code") country: StringProperty(name="Country") - telephone_numbers: StringProperty(name="Telephone Numbers") - facsimile_numbers: StringProperty(name="Facsimile Numbers") + telephone_numbers: CollectionProperty(type=StrProperty, name="Telephone Numbers") + facsimile_numbers: CollectionProperty(type=StrProperty, name="Facsimile Numbers") pager_number: StringProperty(name="Pager Number") - electronic_mail_addresses: StringProperty(name="Emails") - www_home_page_url: StringProperty(name="Websites") - messaging_ids: StringProperty(name="IMs") + electronic_mail_addresses: CollectionProperty(type=StrProperty, name="Emails") + www_home_page_url: StringProperty(name="Website") + messaging_ids: CollectionProperty(type=StrProperty, name="IMs") class Role(PropertyGroup): @@ -112,9 +112,9 @@ class Person(PropertyGroup): name: StringProperty(name="Identification") family_name: StringProperty(name="Family Name") given_name: StringProperty(name="Given Name") - middle_names: StringProperty(name="Middle Names") - prefix_titles: StringProperty(name="Prefixes") - suffix_titles: StringProperty(name="Suffixes") + middle_names: CollectionProperty(type=StrProperty, name="Middle Names") + prefix_titles: CollectionProperty(type=StrProperty, name="Prefixes") + suffix_titles: CollectionProperty(type=StrProperty, name="Suffixes") class BIMOwnerProperties(PropertyGroup): diff --git a/src/blenderbim/blenderbim/bim/module/owner/ui.py b/src/blenderbim/blenderbim/bim/module/owner/ui.py index e4ea5c943d..42c91c5603 100644 --- a/src/blenderbim/blenderbim/bim/module/owner/ui.py +++ b/src/blenderbim/blenderbim/bim/module/owner/ui.py @@ -2,6 +2,35 @@ import bpy from bpy.types import Panel from ifcopenshell.api.owner.data import Data from blenderbim.bim.ifc import IfcStore +from .operator import AddOrRemoveElementFromCollection + + +def draw_string_collection(layout, owner, collection_name): + column = layout.column(align=True) + collection = getattr(owner, collection_name) + for i in range(len(collection)): + if i == 0: + row = draw_prop_on_new_row( + column, + collection[i], + "name", + align=True, + text=f"{owner.bl_rna.properties[collection_name].name}") + add_op = row.operator(AddOrRemoveElementFromCollection.bl_idname, icon="ADD", text="") + add_op.operation = "+" + add_op.collection_path = collection.path_from_id() + else: + row = draw_prop_on_new_row(column, collection[i], "name", align=True, text=f"#{i + 1}") + rem_op = row.operator(AddOrRemoveElementFromCollection.bl_idname, icon="REMOVE", text="") + rem_op.operation = "-" + rem_op.collection_path = collection.path_from_id() + rem_op.selected_item_idx = i + + +def draw_prop_on_new_row(layout, owner, attribute, align=False, **kwargs): + row = layout.row(align=align) + row.prop(owner, attribute, **kwargs) + return row def draw_roles_ui(box, assigned_object_id, roles, context): @@ -14,15 +43,12 @@ def draw_roles_ui(box, assigned_object_id, roles, context): if props.active_role_id == role_id: blender_role = props.role box2 = box.box() - row = box2.row(align=True) - row.prop(blender_role, "name", icon="MOD_CLOTH", text="") + row = draw_prop_on_new_row(box2, blender_role, "name", align=True, icon="MOD_CLOTH", text="") row.operator("bim.edit_role", icon="CHECKMARK", text="") row.operator("bim.disable_editing_role", icon="X", text="") if blender_role.name == "USERDEFINED": - row = box2.row() - row.prop(blender_role, "user_defined_role") - row = box2.row() - row.prop(blender_role, "description") + draw_prop_on_new_row(box2, blender_role, "user_defined_role") + draw_prop_on_new_row(box2, blender_role, "description") else: row = box.row(align=True) row.label(text=role["UserDefinedRole"] or role["Role"]) @@ -45,45 +71,29 @@ def draw_addresses_ui(box, assigned_object_id, addresses, file, context): if props.active_address_id == address_id: blender_address = props.address box2 = box.box() - row = box2.row(align=True) - row.prop(blender_address, "purpose", icon="MOD_CLOTH", text="") + row = draw_prop_on_new_row(box2, blender_address, "purpose", align=True, icon="MOD_CLOTH", text="") row.operator("bim.edit_address", icon="CHECKMARK", text="") row.operator("bim.disable_editing_address", icon="X", text="") if blender_address.purpose == "USERDEFINED": - row = box2.row() - row.prop(blender_address, "user_defined_purpose") - row = box2.row() - row.prop(blender_address, "description") + draw_prop_on_new_row(box2, blender_address, "user_defined_purpose") + draw_prop_on_new_row(box2, blender_address, "description") if address["type"] == "IfcTelecomAddress": - row = box2.row() - row.prop(blender_address, "telephone_numbers") - row = box2.row() - row.prop(blender_address, "facsimile_numbers") - row = box2.row() - row.prop(blender_address, "pager_number") - row = box2.row() - row.prop(blender_address, "electronic_mail_addresses") - row = box2.row() - row.prop(blender_address, "www_home_page_url") - if file.schema != "IFC2X3": - row = box2.row() - row.prop(blender_address, "messaging_ids") + draw_string_collection(box2, blender_address, "telephone_numbers") + draw_string_collection(box2, blender_address, "facsimile_numbers") + draw_prop_on_new_row(box2, blender_address, "pager_number") + draw_string_collection(box2, blender_address, "electronic_mail_addresses") + draw_prop_on_new_row(box2, blender_address, "www_home_page_url") + if file.schema != "IFC2X3": + draw_string_collection(box2, blender_address, "messaging_ids") elif address["type"] == "IfcPostalAddress": - row = box2.row() - row.prop(blender_address, "internal_location") - row = box2.row() - row.prop(blender_address, "address_lines") - row = box2.row() - row.prop(blender_address, "postal_box") - row = box2.row() - row.prop(blender_address, "town") - row = box2.row() - row.prop(blender_address, "region") - row = box2.row() - row.prop(blender_address, "postal_code") - row = box2.row() - row.prop(blender_address, "country") + draw_prop_on_new_row(box2, blender_address, "internal_location") + draw_string_collection(box2, blender_address, "address_lines") + draw_prop_on_new_row(box2, blender_address, "postal_box") + draw_prop_on_new_row(box2, blender_address, "town") + draw_prop_on_new_row(box2, blender_address, "region") + draw_prop_on_new_row(box2, blender_address, "postal_code") + draw_prop_on_new_row(box2, blender_address, "country") else: row = box.row(align=True) row.label(text=address["type"]) @@ -91,7 +101,6 @@ def draw_addresses_ui(box, assigned_object_id, addresses, file, context): row.operator("bim.remove_address", icon="X", text="").address_id = address_id - class BIM_PT_people(Panel): bl_label = "IFC People" bl_idname = "BIM_PT_people" @@ -120,21 +129,14 @@ class BIM_PT_people(Panel): if props.active_person_id == person_id: blender_person = props.person box = self.layout.box() - row = box.row(align=True) - row.prop(blender_person, "name", icon="USER", text="") + row = draw_prop_on_new_row(box, blender_person, "name", align=True, icon="USER", text="") row.operator("bim.edit_person", icon="CHECKMARK", text="") row.operator("bim.disable_editing_person", icon="X", text="") - row = box.row() - row.prop(blender_person, "family_name") - row = box.row() - row.prop(blender_person, "given_name") - row = box.row() - row.prop(blender_person, "middle_names") - row = box.row() - row.prop(blender_person, "prefix_titles") - row = box.row() - row.prop(blender_person, "suffix_titles") - + draw_prop_on_new_row(box, blender_person, "family_name") + draw_prop_on_new_row(box, blender_person, "given_name") + draw_string_collection(box, blender_person, "middle_names") + draw_string_collection(box, blender_person, "prefix_titles") + draw_string_collection(box, blender_person, "suffix_titles") draw_roles_ui(box, person_id, person["Roles"], context) draw_addresses_ui(box, person_id, person["Addresses"], self.file, context) else: @@ -183,11 +185,9 @@ class BIM_PT_organisations(Panel): row = box.row(align=True) row.prop(blender_organisation, "name", icon="USER", text="") row.operator("bim.edit_organisation", icon="CHECKMARK", text="") - row.operator("bim.disable_editing_organisation", icon="X", text="") - row = box.row() - row.prop(blender_organisation, "identification") - row = box.row() - row.prop(blender_organisation, "description") + row.operator("bim.disable_editing_organisation", icon="X", text="") + draw_prop_on_new_row(box, blender_organisation, "identification") + draw_prop_on_new_row(box, blender_organisation, "description") draw_roles_ui(box, organisation_id, organisation["Roles"], context) draw_addresses_ui(box, organisation_id, organisation["Addresses"], self.file, context) @@ -224,11 +224,9 @@ class BIM_PT_owner(Panel): if not Data.people: self.layout.label(text="No people found.") else: - row = self.layout.row() - row.prop(props, "user_person") + draw_prop_on_new_row(self.layout, props, "user_person") if not Data.organisations: self.layout.label(text="No organisations found.") else: - row = self.layout.row() - row.prop(props, "user_organisation") + draw_prop_on_new_row(self.layout, props, "user_organisation") From 5562c9d2b5b73e195ad4c6ace2bc57106f69d8a2 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Tue, 3 Aug 2021 01:07:56 +0200 Subject: [PATCH 096/168] Fix error if no ifc file set (#1620) * Fix error trying to access unset ifc file * Return prematurely from operator if no file is set * Revert "Return prematurely from operator if no file is set" This reverts commit f876cfbcef040f19672bbc404ea2aa5131b3a616. * Revert "Fix error trying to access unset ifc file" This reverts commit 6782c47d86e472ce86bdf8374b89399725b757da. * Prevent error message if ifc_types enum is empty * Hide panel if no ifc file to avoid error --- src/blenderbim/blenderbim/bim/module/model/ui.py | 4 ++++ src/blenderbim/blenderbim/bim/module/type/prop.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/ui.py b/src/blenderbim/blenderbim/bim/module/model/ui.py index 0eae3f114e..9e5db798a4 100644 --- a/src/blenderbim/blenderbim/bim/module/model/ui.py +++ b/src/blenderbim/blenderbim/bim/module/model/ui.py @@ -9,6 +9,10 @@ class BIM_PT_authoring(Panel): bl_region_type = "UI" bl_category = "BlenderBIM" + @classmethod + def poll(cls, context): + return IfcStore.get_file() + def draw(self, context): tprops = context.scene.BIMTypeProperties col = self.layout.column(align=True) diff --git a/src/blenderbim/blenderbim/bim/module/type/prop.py b/src/blenderbim/blenderbim/bim/module/type/prop.py index fc7b6acab0..1b20b1367a 100644 --- a/src/blenderbim/blenderbim/bim/module/type/prop.py +++ b/src/blenderbim/blenderbim/bim/module/type/prop.py @@ -42,7 +42,7 @@ def getIfcTypes(self, context): def getAvailableTypes(self, context): global available_types_enum - if len(available_types_enum) < 1: + if len(available_types_enum) < 1 and getIfcTypes(self, context): elements = IfcStore.get_file().by_type(self.ifc_class) available_types_enum.extend((str(e.id()), e.Name, "") for e in elements) return available_types_enum From 9625200a2a24217bf4b9a4ad361434b04f423768 Mon Sep 17 00:00:00 2001 From: Gorgious56 Date: Tue, 3 Aug 2021 01:08:35 +0200 Subject: [PATCH 097/168] Improve Debug Panel UI (#1621) * Inline parameters with their respective operator * Restrict min number of polygons to 0 * Simplify high poly mesh operator execution * Clear debug attributes when purging ifc * Poll if ifc file exists in operators * Poll if ifc filepath exists before import * Delete leftover whitespaces --- .../blenderbim/bim/module/debug/operator.py | 39 +++++++++++++------ .../blenderbim/bim/module/debug/prop.py | 2 +- .../blenderbim/bim/module/debug/ui.py | 10 ++--- 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/debug/operator.py b/src/blenderbim/blenderbim/bim/module/debug/operator.py index ae5b76b472..b7096f86e8 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/operator.py +++ b/src/blenderbim/blenderbim/bim/module/debug/operator.py @@ -12,6 +12,10 @@ class PrintIfcFile(bpy.types.Operator): bl_idname = "bim.print_ifc_file" bl_label = "Print IFC File" + @classmethod + def poll(cls, context): + return IfcStore.get_file() + def execute(self, context): print(IfcStore.get_file().wrapped_data.to_string()) return {"FINISHED"} @@ -30,6 +34,7 @@ class PurgeIfcLinks(bpy.types.Operator): for material in bpy.data.materials: material.BIMMaterialProperties.ifc_style_id = False context.scene.BIMProperties.ifc_file = "" + context.scene.BIMDebugProperties.attributes.clear() IfcStore.purge() blenderbim.bim.handler.purge_module_data() return {"FINISHED"} @@ -39,6 +44,10 @@ class ValidateIfcFile(bpy.types.Operator): bl_idname = "bim.validate_ifc_file" bl_label = "Validate IFC File" + @classmethod + def poll(cls, context): + return IfcStore.get_file() + def execute(self, context): import ifcopenshell.validate @@ -52,6 +61,10 @@ class ProfileImportIFC(bpy.types.Operator): bl_idname = "bim.profile_import_ifc" bl_label = "Profile Import IFC" + @classmethod + def poll(cls, context): + return IfcStore.get_file() and context.scene.BIMProperties.ifc_file + def execute(self, context): import cProfile import pstats @@ -69,6 +82,10 @@ class CreateAllShapes(bpy.types.Operator): bl_idname = "bim.create_all_shapes" bl_label = "Create All Shapes" + @classmethod + def poll(cls, context): + return IfcStore.get_file() + def execute(self, context): self.file = IfcStore.get_file() elements = self.file.by_type("IfcElement") + self.file.by_type("IfcSpace") @@ -97,6 +114,10 @@ class CreateShapeFromStepId(bpy.types.Operator): bl_label = "Create Shape From STEP ID" bl_options = {"REGISTER", "UNDO"} + @classmethod + def poll(cls, context): + return IfcStore.get_file() + def execute(self, context): return IfcStore.execute_ifc_operator(self, context) @@ -122,17 +143,9 @@ class SelectHighPolygonMeshes(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - results = {} - for obj in bpy.data.objects: - if not isinstance(obj.data, bpy.types.Mesh) or len(obj.data.polygons) < int( - context.scene.BIMDebugProperties.number_of_polygons - ): - continue - try: - obj.select_set(True) - except: - # If it is not in the view layer - pass + [o.select_set(True) for o in context.view_layer.objects + if o.type == 'MESH' + and len(o.data.polygons) > context.scene.BIMDebugProperties.number_of_polygons] return {"FINISHED"} @@ -157,6 +170,10 @@ class InspectFromStepId(bpy.types.Operator): bl_label = "Inspect From STEP ID" step_id: bpy.props.IntProperty() + @classmethod + def poll(cls, context): + return IfcStore.get_file() + def execute(self, context): self.file = IfcStore.get_file() context.scene.BIMDebugProperties.active_step_id = self.step_id diff --git a/src/blenderbim/blenderbim/bim/module/debug/prop.py b/src/blenderbim/blenderbim/bim/module/debug/prop.py index cc1ef6213c..d7b6868eeb 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/prop.py +++ b/src/blenderbim/blenderbim/bim/module/debug/prop.py @@ -14,7 +14,7 @@ from bpy.props import ( class BIMDebugProperties(PropertyGroup): step_id: IntProperty(name="STEP ID") - number_of_polygons: IntProperty(name="Number of Polygons") + number_of_polygons: IntProperty(name="Number of Polygons", min=0) active_step_id: IntProperty(name="STEP ID") step_id_breadcrumb: CollectionProperty(name="STEP ID Breadcrumb", type=StrProperty) attributes: CollectionProperty(name="Attributes", type=Attribute) diff --git a/src/blenderbim/blenderbim/bim/module/debug/ui.py b/src/blenderbim/blenderbim/bim/module/debug/ui.py index 12d861df7f..5919b6058f 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/ui.py +++ b/src/blenderbim/blenderbim/bim/module/debug/ui.py @@ -32,15 +32,13 @@ class BIM_PT_debug(Panel): row = layout.row() row.operator("bim.profile_import_ifc") - row = layout.row() - row.prop(props, "step_id", text="") - row = layout.row() + row = layout.split(factor=0.7, align=True) row.operator("bim.create_shape_from_step_id") + row.prop(props, "step_id", text="") - row = layout.row() - row.prop(props, "number_of_polygons", text="") - row = layout.row() + row = layout.split(factor=0.7, align=True) row.operator("bim.select_high_polygon_meshes") + row.prop(props, "number_of_polygons", text="") layout.label(text="Inspector:") From bfaa89cdecf7d8d732d297ab3e34056e9d2b6645 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Aug 2021 09:43:39 +1000 Subject: [PATCH 098/168] Fix #1608. Fix warnings when no people or organisations existed. --- src/blenderbim/blenderbim/bim/handler.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/handler.py b/src/blenderbim/blenderbim/bim/handler.py index 7c02de271f..447f1f9eb4 100644 --- a/src/blenderbim/blenderbim/bim/handler.py +++ b/src/blenderbim/blenderbim/bim/handler.py @@ -4,6 +4,7 @@ import addon_utils import ifcopenshell.api.owner.settings from bpy.app.handlers import persistent from blenderbim.bim.ifc import IfcStore +from blenderbim.bim.module.owner.prop import getPersons, getOrganisations from ifcopenshell.api.attribute.data import Data as AttributeData from ifcopenshell.api.material.data import Data as MaterialData from ifcopenshell.api.style.data import Data as StyleData @@ -211,12 +212,12 @@ def setDefaultProperties(scene): ) ifcopenshell.api.owner.settings.get_person = ( lambda ifc: ifc.by_id(int(bpy.context.scene.BIMOwnerProperties.user_person)) - if bpy.context.scene.BIMOwnerProperties.user_person + if getPersons(None, bpy.context) and bpy.context.scene.BIMOwnerProperties.user_person else None ) ifcopenshell.api.owner.settings.get_organisation = ( lambda ifc: ifc.by_id(int(bpy.context.scene.BIMOwnerProperties.user_organisation)) - if bpy.context.scene.BIMOwnerProperties.user_organisation + if getOrganisations(None, bpy.context) and bpy.context.scene.BIMOwnerProperties.user_organisation else None ) ifcopenshell.api.owner.settings.get_application = get_application From f25fb0db51b82a84d6d1d4b3c06ddad2fe9eb8e1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Aug 2021 13:29:13 +1000 Subject: [PATCH 099/168] New hppfcl IfcClash packaged for the BlenderBIM Add-on. New MacOS support. See #1357. --- src/blenderbim/Makefile | 139 ++++++++++++++++-- .../blenderbim/bim/module/clash/operator.py | 23 +-- src/ifcclash/ifcclash/ifcclash.py | 2 +- 3 files changed, 141 insertions(+), 23 deletions(-) diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile index 08bb266a63..f6ce39e6af 100644 --- a/src/blenderbim/Makefile +++ b/src/blenderbim/Makefile @@ -1,6 +1,58 @@ VERSION:=`date '+%y%m%d'` PYVERSION:=py37 +ifeq ($(PYVERSION), py37) +PYLIBDIR:=python3.7 +endif +ifeq ($(PYVERSION), py39) +PYLIBDIR:=python3.9 +endif + +ifeq ($(PLATFORM), linux) +ifeq ($(PYVERSION), py37) +HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/linux-64/hpp-fcl-1.7.5-py37h5f1835d_0.tar.bz2 +EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/linux-64/eigenpy-2.6.5-py37h95e2c48_0.tar.bz2 +BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/linux-64/boost-1.74.0-py37h0379df6_3.tar.bz2 +endif +ifeq ($(PYVERSION), py39) +HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/linux-64/hpp-fcl-1.7.5-py39hbcdfc36_0.tar.bz2 +EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/linux-64/eigenpy-2.6.5-py39h5aed9d1_0.tar.bz2 +BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/linux-64/boost-1.74.0-py39h5472131_3.tar.bz2 +endif +ASSIMP_URL:=https://anaconda.org/conda-forge/assimp/5.0.1/download/linux-64/assimp-5.0.1-hedfc422_6.tar.bz2 +OCTOMAP_URL:=https://anaconda.org/conda-forge/octomap/1.9.7/download/linux-64/octomap-1.9.7-h4bd325d_0.tar.bz2 +endif + +ifeq ($(PLATFORM), macos) +ifeq ($(PYVERSION), py37) +HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/osx-64/hpp-fcl-1.7.5-py37h2d7f23a_0.tar.bz2 +EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/osx-64/eigenpy-2.6.5-py37h0695097_0.tar.bz2 +BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/osx-64/boost-1.74.0-py37hd79e0ac_3.tar.bz2 +endif +ifeq ($(PYVERSION), py39) +HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/osx-64/hpp-fcl-1.7.5-py39h1e32b98_0.tar.bz2 +EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/osx-64/eigenpy-2.6.5-py39h5405915_0.tar.bz2 +BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/osx-64/boost-1.74.0-py39ha641261_3.tar.bz2 +endif +ASSIMP_URL:=https://anaconda.org/conda-forge/assimp/5.0.1/download/osx-64/assimp-5.0.1-h1224e73_6.tar.bz2 +OCTOMAP_URL:=https://anaconda.org/conda-forge/octomap/1.9.7/download/osx-64/octomap-1.9.7-h940c156_0.tar.bz2 +endif + +ifeq ($(PLATFORM), win) +ifeq ($(PYVERSION), py37) +HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/win-64/hpp-fcl-1.7.5-py37h839d6b1_0.tar.bz2 +EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/win-64/eigenpy-2.6.5-py37h2c32e34_0.tar.bz2 +BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/win-64/boost-1.74.0-py37h3b38789_3.tar.bz2 +endif +ifeq ($(PYVERSION), py39) +HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/win-64/hpp-fcl-1.7.5-py39h2e7c763_0.tar.bz2 +EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/win-64/eigenpy-2.6.5-py39h3ce40e6_0.tar.bz2 +BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/win-64/boost-1.74.0-py39hefe7e4c_3.tar.bz2 +endif +ASSIMP_URL:=https://anaconda.org/conda-forge/assimp/5.0.1/download/win-64/assimp-5.0.1-hc2aa0de_6.tar.bz2 +OCTOMAP_URL:=https://anaconda.org/conda-forge/octomap/1.9.7/download/win-64/octomap-1.9.7-h5362a0b_0.tar.bz2 +endif + .PHONY: dist dist: ifndef PLATFORM @@ -49,7 +101,7 @@ endif # Provides bcf functionality cp -r dist/working/IfcOpenShell-0.6.0/src/bcf/bcf dist/blenderbim/libs/site/packages/ # Provides IFCClash functionality - cp -r dist/working/IfcOpenShell-0.6.0/src/ifcclash/* dist/blenderbim/libs/site/packages/ + cp -r dist/working/IfcOpenShell-0.6.0/src/ifcclash/ifcclash dist/blenderbim/libs/site/packages/ # Provides BIMTester functionality cd dist/working && python -m venv env cd dist/working && . env/bin/activate && pip install pybabel @@ -174,20 +226,85 @@ endif rm -rf dist/working # Required by IFCClash -ifeq ($(PLATFORM), linux) mkdir dist/working - cd dist/working && wget https://files.pythonhosted.org/packages/0c/fa/00d85f893b02289e2942849d97f8818dde8e2111182e825fb3a735677791/python_fcl-0.0.12-cp37-cp37m-manylinux1_x86_64.whl - cd dist/working && unzip python_fcl* - cp -r dist/working/fcl dist/blenderbim/libs/site/packages/ - rm -rf dist/working + cd dist/working && wget $(HPPFCL_URL) + cd dist/working && tar -xf hpp-fcl* + cp -r dist/working/lib/$(PYLIBDIR)/site-packages/hppfcl dist/blenderbim/libs/site/packages/ +ifeq ($(PLATFORM), linux) + cp -r dist/working/lib/*.so* dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), macos) + cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ endif ifeq ($(PLATFORM), win) - mkdir dist/working - cd dist/working && wget https://files.pythonhosted.org/packages/19/e6/6e9f33fb59e8f27c0e1592bd26e644bc92b85c942b072b2d3854105d5887/python_fcl_win32-0.0.12.post3-py3-none-win_amd64.whl - cd dist/working && unzip python_fcl* - cp -r dist/working/fcl dist/blenderbim/libs/site/packages/ - rm -rf dist/working + cp -r dist/working/Library/lib/*.lib dist/blenderbim/libs/site/packages/hppfcl/ + cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ endif + rm -rf dist/working + + # Required by hpp-fcl + mkdir dist/working + cd dist/working && wget $(ASSIMP_URL) + cd dist/working && tar -xf assimp* +ifeq ($(PLATFORM), linux) + cp -r dist/working/lib/*.so* dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), macos) + cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), win) + cp -r dist/working/Library/bin/*.lib dist/blenderbim/libs/site/packages/hppfcl/ + cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ +endif + rm -rf dist/working + + # Required by hpp-fcl + mkdir dist/working + cd dist/working && wget $(EIGENPY_URL) + cd dist/working && tar -xf eigenpy* +ifeq ($(PLATFORM), linux) + cp -r dist/working/lib/*.so* dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), macos) + cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), win) + cp -r dist/working/Library/bin/*.lib dist/blenderbim/libs/site/packages/hppfcl/ + cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ +endif + rm -rf dist/working + + # Required by hpp-fcl + mkdir dist/working + cd dist/working && wget $(OCTOMAP_URL) + cd dist/working && tar -xf octomap* +ifeq ($(PLATFORM), linux) + cp -r dist/working/lib/*.so* dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), macos) + cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), win) + cp -r dist/working/Library/bin/*.lib dist/blenderbim/libs/site/packages/hppfcl/ + cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ +endif + rm -rf dist/working + + # Required by hpp-fcl + mkdir dist/working + cd dist/working && wget $(BOOST_URL) + cd dist/working && tar -xf boost* +ifeq ($(PLATFORM), linux) + cp -r dist/working/lib/*.so* dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), macos) + cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), win) + cp -r dist/working/Library/bin/*.lib dist/blenderbim/libs/site/packages/hppfcl/ + cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ +endif + rm -rf dist/working # Required by BIMTester mkdir dist/working diff --git a/src/blenderbim/blenderbim/bim/module/clash/operator.py b/src/blenderbim/blenderbim/bim/module/clash/operator.py index b507a90329..45b9f5cecf 100644 --- a/src/blenderbim/blenderbim/bim/module/clash/operator.py +++ b/src/blenderbim/blenderbim/bim/module/clash/operator.py @@ -186,19 +186,19 @@ class ExecuteIfcClash(bpy.types.Operator): return {"RUNNING_MODAL"} def execute(self, context): - import ifcclash + from ifcclash import ifcclash - settings = ifcclash.IfcClashSettings() + settings = ifcclash.ClashSettings() if ".json" not in self.filepath: self.filepath = bpy.path.ensure_ext(self.filepath, ".bcf") settings.output = self.filepath settings.logger = logging.getLogger("Clash") settings.logger.setLevel(logging.DEBUG) - ifc_clasher = ifcclash.IfcClasher(settings) + clasher = ifcclash.Clasher(settings) if context.scene.BIMClashProperties.should_create_clash_snapshots: - def get_viewpoint_snapshot(self, viewpoint, mat): + def get_viewpoint_snapshot(viewpoint, mat): camera = bpy.data.objects.get("IFC Clash Camera") if not camera: camera = bpy.data.objects.new("IFC Clash Camera", bpy.data.cameras.new("IFC Clash Camera")) @@ -218,9 +218,9 @@ class ExecuteIfcClash(bpy.types.Operator): bpy.ops.render.opengl(write_still=True) return context.scene.render.filepath - ifcclash.IfcClasher.get_viewpoint_snapshot = get_viewpoint_snapshot + clasher.get_viewpoint_snapshot = get_viewpoint_snapshot - ifc_clasher.clash_sets = [] + clasher.clash_sets = [] for clash_set in context.scene.BIMClashProperties.clash_sets: self.a = [] self.b = [] @@ -231,11 +231,12 @@ class ExecuteIfcClash(bpy.types.Operator): clash_source["selector"] = data.selector clash_source["mode"] = data.mode getattr(self, ab).append(clash_source) - ifc_clasher.clash_sets.append( - {"name": clash_set.name, "tolerance": clash_set.tolerance, "a": self.a, "b": self.b} - ) - ifc_clasher.clash() - ifc_clasher.export() + clash_set_data = {"name": clash_set.name, "tolerance": clash_set.tolerance, "a": self.a} + if self.b: + clash_set_data["b"] = self.b + clasher.clash_sets.append(clash_set_data) + clasher.clash() + clasher.export() return {"FINISHED"} diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py index 6dd16c12e6..c966311213 100644 --- a/src/ifcclash/ifcclash/ifcclash.py +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -47,7 +47,7 @@ class Clasher: if "b" in clash_set: element2 = self.get_element(clash_set["b"], result["id2"]) else: - element2 = self.get_element(clash_set["1"], result["id2"]) + element2 = self.get_element(clash_set["a"], result["id2"]) contact = result["collision"].getContacts()[0] processed_results[f"{result['id1']}-{result['id2']}"] = { From b59a9f5264a3a952ee2a0b6ec87294bb0b707811 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Aug 2021 16:09:43 +1000 Subject: [PATCH 100/168] Unbreak everything. --- src/blenderbim/blenderbim/bim/operator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py index 8b29b3150c..506d805a9c 100644 --- a/src/blenderbim/blenderbim/bim/operator.py +++ b/src/blenderbim/blenderbim/bim/operator.py @@ -44,7 +44,7 @@ class ExportIFC(bpy.types.Operator): def _execute(self, context): start = time.time() logger = logging.getLogger("ExportIFC") - path_log = os.path.join(bpy.context.scene.BIMProperties.data_dir, "process.log"), + path_log = os.path.join(bpy.context.scene.BIMProperties.data_dir, "process.log") if not os.access(bpy.context.scene.BIMProperties.data_dir, os.W_OK): path_log = os.path.join(tempfile.mkdtemp(), "process.log") logging.basicConfig( @@ -110,7 +110,7 @@ class ImportIFC(bpy.types.Operator, ImportHelper): def execute(self, context): start = time.time() logger = logging.getLogger("ImportIFC") - path_log = os.path.join(context.scene.BIMProperties.data_dir, "process.log"), + path_log = os.path.join(context.scene.BIMProperties.data_dir, "process.log") if not os.access(context.scene.BIMProperties.data_dir, os.W_OK): path_log = os.path.join(tempfile.mkdtemp(), "process.log") logging.basicConfig( From 4fe427558faf5af19e90909809b63b4dd234681c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Aug 2021 16:55:30 +1000 Subject: [PATCH 101/168] Minor fix. --- src/blenderbim/Makefile | 29 ++++++++++++++----- .../blenderbim/bim/module/root/operator.py | 2 +- .../blenderbim/libs/site/packages/hppfcl.pth | 3 ++ src/ifcclash/ifcclash/collider.py | 2 +- src/ifcclash/ifcclash/ifcclash.py | 14 ++++----- 5 files changed, 34 insertions(+), 16 deletions(-) create mode 100644 src/blenderbim/blenderbim/libs/site/packages/hppfcl.pth diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile index f6ce39e6af..7277fa9446 100644 --- a/src/blenderbim/Makefile +++ b/src/blenderbim/Makefile @@ -21,6 +21,7 @@ BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/linux-64/boost endif ASSIMP_URL:=https://anaconda.org/conda-forge/assimp/5.0.1/download/linux-64/assimp-5.0.1-hedfc422_6.tar.bz2 OCTOMAP_URL:=https://anaconda.org/conda-forge/octomap/1.9.7/download/linux-64/octomap-1.9.7-h4bd325d_0.tar.bz2 +ZLIB_URL:=https://anaconda.org/conda-forge/zlib/1.2.11/download/linux-64/zlib-1.2.11-h516909a_1010.tar.bz2 endif ifeq ($(PLATFORM), macos) @@ -36,6 +37,7 @@ BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/osx-64/boost-1 endif ASSIMP_URL:=https://anaconda.org/conda-forge/assimp/5.0.1/download/osx-64/assimp-5.0.1-h1224e73_6.tar.bz2 OCTOMAP_URL:=https://anaconda.org/conda-forge/octomap/1.9.7/download/osx-64/octomap-1.9.7-h940c156_0.tar.bz2 +ZLIB_URL:=https://anaconda.org/conda-forge/zlib/1.2.11/download/osx-64/zlib-1.2.11-h7795811_1010.tar.bz2 endif ifeq ($(PLATFORM), win) @@ -51,6 +53,7 @@ BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/win-64/boost-1 endif ASSIMP_URL:=https://anaconda.org/conda-forge/assimp/5.0.1/download/win-64/assimp-5.0.1-hc2aa0de_6.tar.bz2 OCTOMAP_URL:=https://anaconda.org/conda-forge/octomap/1.9.7/download/win-64/octomap-1.9.7-h5362a0b_0.tar.bz2 +ZLIB_URL:=https://anaconda.org/conda-forge/zlib/1.2.11/download/win-64/zlib-1.2.11-h62dcd97_1010.tar.bz2 endif .PHONY: dist @@ -229,15 +232,16 @@ endif mkdir dist/working cd dist/working && wget $(HPPFCL_URL) cd dist/working && tar -xf hpp-fcl* - cp -r dist/working/lib/$(PYLIBDIR)/site-packages/hppfcl dist/blenderbim/libs/site/packages/ ifeq ($(PLATFORM), linux) + cp -r dist/working/lib/$(PYLIBDIR)/site-packages/hppfcl dist/blenderbim/libs/site/packages/ cp -r dist/working/lib/*.so* dist/blenderbim/libs/ endif ifeq ($(PLATFORM), macos) + cp -r dist/working/lib/$(PYLIBDIR)/site-packages/hppfcl dist/blenderbim/libs/site/packages/ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ endif ifeq ($(PLATFORM), win) - cp -r dist/working/Library/lib/*.lib dist/blenderbim/libs/site/packages/hppfcl/ + cp -r dist/working/Lib/site-packages/hppfcl dist/blenderbim/libs/site/packages/ cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ endif rm -rf dist/working @@ -253,7 +257,6 @@ ifeq ($(PLATFORM), macos) cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ endif ifeq ($(PLATFORM), win) - cp -r dist/working/Library/bin/*.lib dist/blenderbim/libs/site/packages/hppfcl/ cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ endif rm -rf dist/working @@ -269,7 +272,6 @@ ifeq ($(PLATFORM), macos) cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ endif ifeq ($(PLATFORM), win) - cp -r dist/working/Library/bin/*.lib dist/blenderbim/libs/site/packages/hppfcl/ cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ endif rm -rf dist/working @@ -285,8 +287,7 @@ ifeq ($(PLATFORM), macos) cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ endif ifeq ($(PLATFORM), win) - cp -r dist/working/Library/bin/*.lib dist/blenderbim/libs/site/packages/hppfcl/ - cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ + # Uh, do nothing, apparently? No DLLs are shipped. endif rm -rf dist/working @@ -301,7 +302,21 @@ ifeq ($(PLATFORM), macos) cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ endif ifeq ($(PLATFORM), win) - cp -r dist/working/Library/bin/*.lib dist/blenderbim/libs/site/packages/hppfcl/ + cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ +endif + rm -rf dist/working + + # Required by hpp-fcl + mkdir dist/working + cd dist/working && wget $(ZLIB_URL) + cd dist/working && tar -xf zlib* +ifeq ($(PLATFORM), linux) + cp -r dist/working/lib/*.so* dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), macos) + cp -r dist/working/lib/*.dylib dist/blenderbim/libs/ +endif +ifeq ($(PLATFORM), win) cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/ endif rm -rf dist/working diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py index f67b472151..d0a5910a84 100644 --- a/src/blenderbim/blenderbim/bim/module/root/operator.py +++ b/src/blenderbim/blenderbim/bim/module/root/operator.py @@ -287,7 +287,7 @@ class CopyClass(bpy.types.Operator): bpy.ops.bim.assign_type(relating_type=relating_type.id(), related_object=obj.name) else: bpy.ops.bim.add_representation(obj=obj.name) - if result.is_a("IfcSpatialElement") or element.is_a("IfcSpatialStructureElement"): + if result.is_a("IfcSpatialElement") or result.is_a("IfcSpatialStructureElement"): self.place_in_spatial_collection(old_element, obj) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/libs/site/packages/hppfcl.pth b/src/blenderbim/blenderbim/libs/site/packages/hppfcl.pth new file mode 100644 index 0000000000..c0d165217a --- /dev/null +++ b/src/blenderbim/blenderbim/libs/site/packages/hppfcl.pth @@ -0,0 +1,3 @@ +# expose hppfcl as site-package + +hppfcl diff --git a/src/ifcclash/ifcclash/collider.py b/src/ifcclash/ifcclash/collider.py index a2fd0314d4..b04dc3a9f7 100644 --- a/src/ifcclash/ifcclash/collider.py +++ b/src/ifcclash/ifcclash/collider.py @@ -82,7 +82,7 @@ class Collider: mesh_faces = [(int(f[i]), int(f[i + 1]), int(f[i + 2])) for i in range(0, len(f), 3)] bvh = hppfcl.BVHModelOBB() - bvh.beginModel(num_tris=len(mesh.faces), num_vertices=len(mesh_verts)) + bvh.beginModel(len(mesh_faces), len(mesh_verts)) vertices = hppfcl.StdVec_Vec3f() [vertices.append(v) for v in mesh_verts] triangles = hppfcl.StdVec_Triangle() diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py index c966311213..89baee1b5b 100644 --- a/src/ifcclash/ifcclash/ifcclash.py +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -155,14 +155,14 @@ class Clasher: return np.linalg.inv(look_at_transform) def export_json(self): - results = self.clash_sets.copy() - for result in results: - for ab in ["a", "b"]: - for data in result[ab]: - if "ifc" in data: - del data["ifc"] + clash_sets = self.clash_sets.copy() + for clash_set in clash_sets: + for source in clash_set["a"]: + del source["ifc"] + for source in clash_set.get("b", []): + del source["ifc"] with open(self.settings.output, "w", encoding="utf-8") as clashes_file: - json.dump(results, clashes_file, indent=4) + json.dump(clash_sets, clashes_file, indent=4) def get_element(self, clash_set, global_id): for source in clash_set: From e0cd74d0ad8b691dc1e2795ea7bba4e31c9d6b96 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Aug 2021 17:46:26 +1000 Subject: [PATCH 102/168] Fix #1338. Add documentation for how to use IfcClash. --- src/ifcclash/README.md | 115 ++++++++++++++++++++++++++++++ src/ifcclash/ifcclash/__init__.py | 31 ++++++++ src/ifcclash/ifcclash/__main__.py | 4 ++ src/ifcclash/ifcclash/ifcclash.py | 22 ------ src/ifcpatch/README.md | 4 +- 5 files changed, 153 insertions(+), 23 deletions(-) create mode 100644 src/ifcclash/README.md create mode 100644 src/ifcclash/ifcclash/__init__.py create mode 100644 src/ifcclash/ifcclash/__main__.py diff --git a/src/ifcclash/README.md b/src/ifcclash/README.md new file mode 100644 index 0000000000..7a46078732 --- /dev/null +++ b/src/ifcclash/README.md @@ -0,0 +1,115 @@ +# ifcclash + +`ifcclash` is both a CLI utility and library that lets you perform clash +detections on and between IFC files. + +## Installation + +`ifcclash` depends on +[`hppfcl`](https://github.com/humanoid-path-planner/hpp-fcl) and optionally +[`bcf`](https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.6.0/src/bcf). Once +you have the dependencies, the `ifcclash` directory may be added to your Python +site packages like any other Python module. You can run it as a CLI like: + +``` +$ python -m ifcclash +``` + +If you want something more Unix-like ... + +``` +$ alias ifcclash='python -m ifcclash' +``` + +## Usage + +Instructions on what clashes to perform are structured in terms of clash sets. +Each clash set contains instructions of collisions that we want to perform, and +can be named so it is easy to distinguish. A typical name would be "Structure +and Pipes", to describe that we are are detecting collisions between structural +elements and pipes. + +Each clash set may include two groups of objects, named `A` and `B`. This tells +IfcClash to attempt to find collisions between any object in group `A` with any +object in group `B`. Group `A` is mandatory, but group `B` is optional. If group +`B` is not provided, IfcClash will detect all clashes within objects of group +`A`. + +Within group `A` or `B`, you may be define one or more data sources of objects. +A data source must include a path to the IFC file which the objects come from. +You may also optionally provide a filter to only include or exclude certain +objects. If no filter is provided, then all objects will be used to detect +collisions. + +Here's a sample JSON description of a single clash set, with both groups +defined with data sources. + +```json +[ + { + "name": "Clash Set A", + "a": [ + { + "file": "/path/to/one.ifc" + } + ], + "b": [ + { + "file": "/path/to/two.ifc" + "selector": ".IfcWall", + "mode": "i" + } + ] + }, + ... +] +``` + +Once your have your JSON description of your clashes, usage is like any other +CLI app. + +``` +$ ifcclash -h + +usage: __main__.py [-h] [-o OUTPUT] input + +Clashes geometry between two IFC files + +positional arguments: + input A JSON dataset describing a series of clashsets + +optional arguments: + -h, --help show this help message and exit + -o OUTPUT, --output OUTPUT + The JSON diff file to output. Defaults to output.json +``` + +In it simplest form, just present your JSON file. + +``` +$ ifcclash clash_sets.json +$ cat output.json +``` + +You can also use it as a library. + +```python +import sys +import json +import logging +import ifcclash + + +settings = ClashSettings() +settings.output = "output.json" +settings.logger = logging.getLogger("Clash") +settings.logger.setLevel(logging.DEBUG) +handler = logging.StreamHandler(sys.stdout) +handler.setLevel(logging.DEBUG) +settings.logger.addHandler(handler) +ifc_clasher = Clasher(settings) +with open(args.input, "r") as clash_sets_file: + ifc_clasher.clash_sets = json.loads(clash_sets_file.read()) +ifc_clasher.clash() +ifc_clasher.export() +``` diff --git a/src/ifcclash/ifcclash/__init__.py b/src/ifcclash/ifcclash/__init__.py new file mode 100644 index 0000000000..da77a5d72d --- /dev/null +++ b/src/ifcclash/ifcclash/__init__.py @@ -0,0 +1,31 @@ +import sys +import json +import logging +import argparse +from .ifcclash import Clasher, ClashSettings + + +def main(): + parser = argparse.ArgumentParser(description="Clashes geometry between two IFC files") + parser.add_argument("input", type=str, help="A JSON dataset describing a series of clashsets") + parser.add_argument( + "-o", "--output", type=str, help="The JSON diff file to output. Defaults to output.json", default="output.json" + ) + args = parser.parse_args() + + settings = ClashSettings() + settings.output = args.output + settings.logger = logging.getLogger("Clash") + settings.logger.setLevel(logging.DEBUG) + handler = logging.StreamHandler(sys.stdout) + handler.setLevel(logging.DEBUG) + settings.logger.addHandler(handler) + ifc_clasher = Clasher(settings) + with open(args.input, "r") as clash_sets_file: + ifc_clasher.clash_sets = json.loads(clash_sets_file.read()) + ifc_clasher.clash() + ifc_clasher.export() + + +if __name__ == "__main__": + main() diff --git a/src/ifcclash/ifcclash/__main__.py b/src/ifcclash/ifcclash/__main__.py new file mode 100644 index 0000000000..0923453d15 --- /dev/null +++ b/src/ifcclash/ifcclash/__main__.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import ifcclash + +ifcclash.main() diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py index 89baee1b5b..76f22e668c 100644 --- a/src/ifcclash/ifcclash/ifcclash.py +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -265,25 +265,3 @@ class ClashSettings: def __init__(self): self.logger = None self.output = "clashes.json" - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Clashes geometry between two IFC files") - parser.add_argument("input", type=str, help="A JSON dataset describing a series of clashsets") - parser.add_argument( - "-o", "--output", type=str, help="The JSON diff file to output. Defaults to output.json", default="output.json" - ) - args = parser.parse_args() - - settings = ClashSettings() - settings.output = args.output - settings.logger = logging.getLogger("Clash") - settings.logger.setLevel(logging.DEBUG) - handler = logging.StreamHandler(sys.stdout) - handler.setLevel(logging.DEBUG) - settings.logger.addHandler(handler) - ifc_clasher = Clasher(settings) - with open(args.input, "r") as clash_sets_file: - ifc_clasher.clash_sets = json.loads(clash_sets_file.read()) - ifc_clasher.clash() - ifc_clasher.export() diff --git a/src/ifcpatch/README.md b/src/ifcpatch/README.md index bf26bcea88..3be1198fed 100644 --- a/src/ifcpatch/README.md +++ b/src/ifcpatch/README.md @@ -59,8 +59,10 @@ $ ifcpatch -i input.ifc -o output.ifc -r ExtractElements -a ".IfcWall" You can also use it as a library. -``` +```python import ifcpatch + + ifcpatch.execute({ "input": "input.ifc", "output": "output.ifc", From 2b63698d7c1c72e5452ce37f916c022cec08b04d Mon Sep 17 00:00:00 2001 From: Gorgious Date: Tue, 3 Aug 2021 12:51:31 +0200 Subject: [PATCH 103/168] Use module variables as dynamic enum containers As explained in https://devtalk.blender.org/t/can-bpy-props-be-used-for-dynamic-lists/10130/11 Dynamic enums can crash Blender if container is not set using at least a module-level variable. Using global keyword is not mandatory but may help debugging --- .../blenderbim/bim/module/owner/prop.py | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/owner/prop.py b/src/blenderbim/blenderbim/bim/module/owner/prop.py index 359d1cc129..367aa13784 100644 --- a/src/blenderbim/blenderbim/bim/module/owner/prop.py +++ b/src/blenderbim/blenderbim/bim/module/owner/prop.py @@ -14,27 +14,37 @@ from bpy.props import ( CollectionProperty, ) +_persons_enum = [] +_organisations_enum = [] + +def purge(): + global _persons_enum + global _organisations_enum + _persons_enum.clear() + _organisations_enum.clear() def getPersons(self, context): + global _persons_enum if not Data.is_loaded: Data.load(IfcStore.get_file()) - results = [] + _persons_enum.clear() for ifc_id, person in Data.people.items(): if "Id" in person: identifier = person["Id"] or "" else: identifier = person["Identification"] or "" - results.append((str(ifc_id), identifier, "")) - return results + _persons_enum.append((str(ifc_id), identifier, "")) + return _persons_enum def getOrganisations(self, context): + global _organisations_enum if not Data.is_loaded: Data.load(IfcStore.get_file()) - results = [] + _organisations_enum.clear() for ifc_id, organisation in Data.organisations.items(): - results.append((str(ifc_id), organisation["Name"], "")) - return results + _organisations_enum.append((str(ifc_id), organisation["Name"], "")) + return _organisations_enum class Address(PropertyGroup): From 7403d140010dfb1005251683bc61923a4359d633 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Aug 2021 22:30:51 +1000 Subject: [PATCH 104/168] Fix IfcPatch pyinstaller script to make it easier to distribute ifcpatch. --- src/ifcclash/README.md | 5 ++--- src/ifcpatch/README.md | 7 +++++++ src/ifcpatch/bootstrap.py | 8 ++++++++ src/ifcpatch/ifcpatch/__init__.py | 18 ------------------ src/ifcpatch/ifcpatch/__main__.py | 10 +++++++++- src/ifcpatch/ifcpatch/make.py | 23 ----------------------- src/ifcpatch/make.py | 6 ++++++ 7 files changed, 32 insertions(+), 45 deletions(-) create mode 100644 src/ifcpatch/bootstrap.py delete mode 100644 src/ifcpatch/ifcpatch/make.py create mode 100644 src/ifcpatch/make.py diff --git a/src/ifcclash/README.md b/src/ifcclash/README.md index 7a46078732..e9c38e3756 100644 --- a/src/ifcclash/README.md +++ b/src/ifcclash/README.md @@ -55,13 +55,12 @@ defined with data sources. ], "b": [ { - "file": "/path/to/two.ifc" + "file": "/path/to/two.ifc", "selector": ".IfcWall", "mode": "i" } ] - }, - ... + } ] ``` diff --git a/src/ifcpatch/README.md b/src/ifcpatch/README.md index 3be1198fed..ac77c270b6 100644 --- a/src/ifcpatch/README.md +++ b/src/ifcpatch/README.md @@ -21,6 +21,13 @@ If you want something more Unix-like ... $ alias ifcpatch='python -m ifcpatch' ``` +Alternatively, you can package it as a distributable. + +``` +$ python make.py +$ ./dist/ifcpatch +``` + ## Usage Usage is like any other CLI app. diff --git a/src/ifcpatch/bootstrap.py b/src/ifcpatch/bootstrap.py new file mode 100644 index 0000000000..6fa8bba961 --- /dev/null +++ b/src/ifcpatch/bootstrap.py @@ -0,0 +1,8 @@ +import toposort +import ifcpatch +import ifcpatch.recipes +import ifcopenshell.util.selector +import ifcopenshell.util.element +import ifcopenshell.util.schema + +import ifcpatch.__main__ diff --git a/src/ifcpatch/ifcpatch/__init__.py b/src/ifcpatch/ifcpatch/__init__.py index d8cf8fa5e4..1675ecae94 100644 --- a/src/ifcpatch/ifcpatch/__init__.py +++ b/src/ifcpatch/ifcpatch/__init__.py @@ -3,7 +3,6 @@ import ifcopenshell import logging -import argparse def execute(args, is_library=None): @@ -28,21 +27,4 @@ def execute(args, is_library=None): text_file.write(ifc_file) else: ifc_file.write(args["output"]) - - -def main(): - parser = argparse.ArgumentParser(description="Patches IFC files to fix badly formatted data") - parser.add_argument("-i", "--input", type=str, required=True, help="The IFC file to patch") - parser.add_argument("-o", "--output", type=str, help="The output file to save the patched IFC") - parser.add_argument("-r", "--recipe", type=str, required=True, help="Name of the recipe to use when patching") - parser.add_argument("-l", "--log", type=str, help="Specify a log file", default="ifcpatch.log") - parser.add_argument("-a", "--arguments", nargs="+", help="Specify custom arguments to the patch recipe") - args = vars(parser.parse_args()) - - execute(args) - print("# All tasks are complete :-)") - - -if __name__ == "__main__": - main() diff --git a/src/ifcpatch/ifcpatch/__main__.py b/src/ifcpatch/ifcpatch/__main__.py index 3b48deed79..c6e15d309d 100644 --- a/src/ifcpatch/ifcpatch/__main__.py +++ b/src/ifcpatch/ifcpatch/__main__.py @@ -1,4 +1,12 @@ #!/usr/bin/env python3 +import argparse import ifcpatch -ifcpatch.main() +parser = argparse.ArgumentParser(description="Patches IFC files to fix badly formatted data") +parser.add_argument("-i", "--input", type=str, required=True, help="The IFC file to patch") +parser.add_argument("-o", "--output", type=str, help="The output file to save the patched IFC") +parser.add_argument("-r", "--recipe", type=str, required=True, help="Name of the recipe to use when patching") +parser.add_argument("-l", "--log", type=str, help="Specify a log file", default="ifcpatch.log") +parser.add_argument("-a", "--arguments", nargs="+", help="Specify custom arguments to the patch recipe") +args = vars(parser.parse_args()) +ifcpatch.execute(args) diff --git a/src/ifcpatch/ifcpatch/make.py b/src/ifcpatch/ifcpatch/make.py deleted file mode 100644 index a2a9da0b9a..0000000000 --- a/src/ifcpatch/ifcpatch/make.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python3 -import os -import subprocess - -# add hidden imports in recipes here -HIDDEN_IMPORTS = [ - "ifcopenshell.util.selector", - "ifcopenshell.util.element", - "ifcopenshell.util.schema", - "toposort", -] - - -def main(): - hiddenimport_args = " ".join('--hiddenimport "{}"'.format(imp) for imp in HIDDEN_IMPORTS) - cmd = 'pyinstaller ./__init__.py --onefile --clean --add-data ".{}ifcpatch" {}'.format( - os.pathsep, hiddenimport_args - ) - subprocess.check_output(cmd, shell=True) - - -if __name__ == "__main__": - main() diff --git a/src/ifcpatch/make.py b/src/ifcpatch/make.py new file mode 100644 index 0000000000..78e13bfc03 --- /dev/null +++ b/src/ifcpatch/make.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +import os +import subprocess + +cmd = f'pyinstaller ./bootstrap.py --name ifcpatch --onefile --clean --add-data "ifcpatch{os.pathsep}ifcpatch"' +subprocess.check_output(cmd, shell=True) From ecfe8c3799d415d92b712be72498864388d62101 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 3 Aug 2021 22:44:46 +1000 Subject: [PATCH 105/168] IfcClash is now able to be built as an isolated Python binary. Hooray! --- src/ifcclash/README.md | 7 +++++++ src/ifcclash/bootstrap.py | 1 + src/ifcclash/clashsets.json | 17 ----------------- src/ifcclash/ifcclash/__init__.py | 31 ------------------------------- src/ifcclash/ifcclash/__main__.py | 26 ++++++++++++++++++++++++-- src/ifcclash/make.py | 7 +++++++ 6 files changed, 39 insertions(+), 50 deletions(-) create mode 100644 src/ifcclash/bootstrap.py delete mode 100644 src/ifcclash/clashsets.json delete mode 100644 src/ifcclash/ifcclash/__init__.py create mode 100644 src/ifcclash/make.py diff --git a/src/ifcclash/README.md b/src/ifcclash/README.md index e9c38e3756..406131efb4 100644 --- a/src/ifcclash/README.md +++ b/src/ifcclash/README.md @@ -21,6 +21,13 @@ If you want something more Unix-like ... $ alias ifcclash='python -m ifcclash' ``` +Alternatively, you can package it as a distributable. + +``` +$ python make.py +$ ./dist/ifcclash +``` + ## Usage Instructions on what clashes to perform are structured in terms of clash sets. diff --git a/src/ifcclash/bootstrap.py b/src/ifcclash/bootstrap.py new file mode 100644 index 0000000000..8ad42c5195 --- /dev/null +++ b/src/ifcclash/bootstrap.py @@ -0,0 +1 @@ +import ifcclash.__main__ diff --git a/src/ifcclash/clashsets.json b/src/ifcclash/clashsets.json deleted file mode 100644 index 0826317114..0000000000 --- a/src/ifcclash/clashsets.json +++ /dev/null @@ -1,17 +0,0 @@ -[ - { - "name": "Clashset foo", - "tolerance": 0.01, - "a": [ - { "file": "/home/dion/one.ifc" } - ], - "b": [ - { - "file": "/home/dion/two.ifc", - "selector": ".IfcProduct", - "mode": "i" - } - ] - } -] - diff --git a/src/ifcclash/ifcclash/__init__.py b/src/ifcclash/ifcclash/__init__.py deleted file mode 100644 index da77a5d72d..0000000000 --- a/src/ifcclash/ifcclash/__init__.py +++ /dev/null @@ -1,31 +0,0 @@ -import sys -import json -import logging -import argparse -from .ifcclash import Clasher, ClashSettings - - -def main(): - parser = argparse.ArgumentParser(description="Clashes geometry between two IFC files") - parser.add_argument("input", type=str, help="A JSON dataset describing a series of clashsets") - parser.add_argument( - "-o", "--output", type=str, help="The JSON diff file to output. Defaults to output.json", default="output.json" - ) - args = parser.parse_args() - - settings = ClashSettings() - settings.output = args.output - settings.logger = logging.getLogger("Clash") - settings.logger.setLevel(logging.DEBUG) - handler = logging.StreamHandler(sys.stdout) - handler.setLevel(logging.DEBUG) - settings.logger.addHandler(handler) - ifc_clasher = Clasher(settings) - with open(args.input, "r") as clash_sets_file: - ifc_clasher.clash_sets = json.loads(clash_sets_file.read()) - ifc_clasher.clash() - ifc_clasher.export() - - -if __name__ == "__main__": - main() diff --git a/src/ifcclash/ifcclash/__main__.py b/src/ifcclash/ifcclash/__main__.py index 0923453d15..047eabd822 100644 --- a/src/ifcclash/ifcclash/__main__.py +++ b/src/ifcclash/ifcclash/__main__.py @@ -1,4 +1,26 @@ #!/usr/bin/env python3 -import ifcclash +import sys +import json +import logging +import argparse +from .ifcclash import Clasher, ClashSettings -ifcclash.main() +parser = argparse.ArgumentParser(description="Clashes geometry between two IFC files") +parser.add_argument("input", type=str, help="A JSON dataset describing a series of clashsets") +parser.add_argument( + "-o", "--output", type=str, help="The JSON diff file to output. Defaults to output.json", default="output.json" +) +args = parser.parse_args() + +settings = ClashSettings() +settings.output = args.output +settings.logger = logging.getLogger("Clash") +settings.logger.setLevel(logging.DEBUG) +handler = logging.StreamHandler(sys.stdout) +handler.setLevel(logging.DEBUG) +settings.logger.addHandler(handler) +ifc_clasher = Clasher(settings) +with open(args.input, "r") as clash_sets_file: + ifc_clasher.clash_sets = json.loads(clash_sets_file.read()) +ifc_clasher.clash() +ifc_clasher.export() diff --git a/src/ifcclash/make.py b/src/ifcclash/make.py new file mode 100644 index 0000000000..1c766da8d6 --- /dev/null +++ b/src/ifcclash/make.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 +import os +import subprocess + + +cmd = "pyinstaller ./bootstrap.py --name ifcclash --onefile --clean" +subprocess.check_output(cmd, shell=True) From 67740a5f79085dfea99ebdff15b7a481979eed3e Mon Sep 17 00:00:00 2001 From: Gorgious Date: Tue, 3 Aug 2021 20:30:30 +0200 Subject: [PATCH 106/168] Fix error due to trying to patch non-existent file --- src/blenderbim/blenderbim/bim/module/patch/operator.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/patch/operator.py b/src/blenderbim/blenderbim/bim/module/patch/operator.py index 6060c7a76d..5015942931 100644 --- a/src/blenderbim/blenderbim/bim/module/patch/operator.py +++ b/src/blenderbim/blenderbim/bim/module/patch/operator.py @@ -40,6 +40,11 @@ class ExecuteIfcPatch(bpy.types.Operator): bl_label = "Execute IFCPatch" file_format: bpy.props.StringProperty() + @classmethod + def poll(cls, context): + input_file = context.scene.BIMPatchProperties.ifc_patch_input + return os.path.isfile(input_file) and "ifc" in os.path.splitext(input_file)[1] + def execute(self, context): import ifcpatch From 4184cff1a0b790694923cace8eeb105dc6fba953 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 4 Aug 2021 09:33:25 +1000 Subject: [PATCH 107/168] Add sample docstring and type hints for IfcPatch recipe. --- src/ifcpatch/ifcpatch/recipes/ExtractElements.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py index 63208ec903..99b0732365 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py @@ -3,11 +3,17 @@ import ifcopenshell.util.selector class Patcher: - def __init__(self, src, file, logger, args=None): + def __init__(self, src, file, logger, query: str = ".IfcWall"): + """Extract Elements + + Extract a subset of elements from an existing IFC data set and save it to a new IFC file. + + :param query: A query to select the subset of IFC elements. + """ self.src = src self.file = file self.logger = logger - self.args = args + self.query = query def patch(self): self.contained_ins = {} @@ -18,7 +24,7 @@ class Patcher: self.owner_history = self.new.add(owner_history) break selector = ifcopenshell.util.selector.Selector() - for element in selector.parse(self.file, self.args[0]): + for element in selector.parse(self.file, self.query): self.add_element(element) self.create_spatial_tree() self.file = self.new From 5cf07a910e015188a079bf0b92f584dcd5aae422 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 4 Aug 2021 10:51:31 +1000 Subject: [PATCH 108/168] Include licenses on IfcOpenShell sub-utilities. See #1082. --- COPYING | 4 +- COPYING.LESSER | 2 +- README.md | 38 +- src/bcf/COPYING | 621 ++++++++++++++++++++++++++++++++ src/bcf/COPYING.LESSER | 165 +++++++++ src/blenderbim/COPYING | 621 ++++++++++++++++++++++++++++++++ src/bsdd/COPYING | 621 ++++++++++++++++++++++++++++++++ src/bsdd/COPYING.LESSER | 165 +++++++++ src/ifc2ca/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifc2ca/COPYING.LESSER | 165 +++++++++ src/ifcbimtester/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifcbimtester/COPYING.LESSER | 165 +++++++++ src/ifccityjson/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifccityjson/COPYING.LESSER | 165 +++++++++ src/ifcclash/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifcclash/COPYING.LESSER | 165 +++++++++ src/ifccobie/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifccobie/COPYING.LESSER | 165 +++++++++ src/ifccsv/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifccsv/COPYING.LESSER | 165 +++++++++ src/ifcdiff/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifcdiff/COPYING.LESSER | 165 +++++++++ src/ifcfm/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifcfm/COPYING.LESSER | 165 +++++++++ src/ifcp6/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifcp6/COPYING.LESSER | 165 +++++++++ src/ifcpatch/COPYING | 621 ++++++++++++++++++++++++++++++++ src/ifcpatch/COPYING.LESSER | 165 +++++++++ src/ifcsverchok/COPYING | 621 ++++++++++++++++++++++++++++++++ 29 files changed, 10714 insertions(+), 4 deletions(-) create mode 100644 src/bcf/COPYING create mode 100644 src/bcf/COPYING.LESSER create mode 100644 src/blenderbim/COPYING create mode 100644 src/bsdd/COPYING create mode 100644 src/bsdd/COPYING.LESSER create mode 100644 src/ifc2ca/COPYING create mode 100644 src/ifc2ca/COPYING.LESSER create mode 100644 src/ifcbimtester/COPYING create mode 100644 src/ifcbimtester/COPYING.LESSER create mode 100644 src/ifccityjson/COPYING create mode 100644 src/ifccityjson/COPYING.LESSER create mode 100644 src/ifcclash/COPYING create mode 100644 src/ifcclash/COPYING.LESSER create mode 100644 src/ifccobie/COPYING create mode 100644 src/ifccobie/COPYING.LESSER create mode 100644 src/ifccsv/COPYING create mode 100644 src/ifccsv/COPYING.LESSER create mode 100644 src/ifcdiff/COPYING create mode 100644 src/ifcdiff/COPYING.LESSER create mode 100644 src/ifcfm/COPYING create mode 100644 src/ifcfm/COPYING.LESSER create mode 100644 src/ifcp6/COPYING create mode 100644 src/ifcp6/COPYING.LESSER create mode 100644 src/ifcpatch/COPYING create mode 100644 src/ifcpatch/COPYING.LESSER create mode 100644 src/ifcsverchok/COPYING diff --git a/COPYING b/COPYING index e587591e14..810fce6e9b 100644 --- a/COPYING +++ b/COPYING @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -618,4 +618,4 @@ an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. - END OF TERMS AND CONDITIONS \ No newline at end of file + END OF TERMS AND CONDITIONS diff --git a/COPYING.LESSER b/COPYING.LESSER index 65c5ca88a6..0a041280bd 100644 --- a/COPYING.LESSER +++ b/COPYING.LESSER @@ -1,7 +1,7 @@ GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. diff --git a/README.md b/README.md index 0cdd3b2653..74ae645805 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,43 @@ Usage examples >>> # Writing IFC-SPF files to disk: >>> f.write("out.ifc") -[LGPL]: https://github.com/IfcOpenShell/IfcOpenShell/tree/master/COPYING "LGPL" +Extra tools +----------- + +Also available are a series of utilities that are based on or related to IfcOpenShell. + +Those marked with an asterisk are part of IfcOpenShell. + +Name | License +--- | --- +bcf | LGPL-3.0-or-later +blenderbim | GPL-3.0-or-later +bsdd | LGPL-3.0-or-later +ifc2ca | LGPL-3.0-or-later +ifcbimtester | LGPL-3.0-or-later +ifcblender | LGPL-3.0-or-later\* +ifccityjson | LGPL-3.0-or-later +ifcclash | LGPL-3.0-or-later +ifccobie | LGPL-3.0-or-later +ifcconvert | LGPL-3.0-or-later\* +ifccsv | LGPL-3.0-or-later +ifcdiff | LGPL-3.0-or-later +ifcfm | LGPL-3.0-or-later +ifcgeom | LGPL-3.0-or-later\* +ifcgeom\_schema\_agnostic | LGPL-3.0-or-later\* +ifcgeomserver | LGPL-3.0-or-later\* +ifcjni | LGPL-3.0-or-later\* +ifcmax | LGPL-3.0-or-later\* +ifcopenshell-python | LGPL-3.0-or-later\* +ifcp6 | LGPL-3.0-or-later +ifcparse | LGPL-3.0-or-later\* +ifcpatch | LGPL-3.0-or-later +ifcsverchok | GPL-3.0-or-later +ifcwrap | LGPL-3.0-or-later\* +qtviewer | LGPL-3.0-or-later\* +serializers | LGPL-3.0-or-later\* + +[LGPL]: https://github.com/IfcOpenShell/IfcOpenShell/tree/master/COPYING.LESSER "LGPL-3.0-or-later" [IFC]: https://technical.buildingsmart.org/standards/ifc/ "IFC" [IFC2x3 TC1]: https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3/TC1/HTML/ "IFC2x3 TC1" [IFC4 Add2 TC1]: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/ "IFC4 Add2 TC1" diff --git a/src/bcf/COPYING b/src/bcf/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/bcf/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/bcf/COPYING.LESSER b/src/bcf/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/bcf/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/blenderbim/COPYING b/src/blenderbim/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/blenderbim/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/bsdd/COPYING b/src/bsdd/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/bsdd/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/bsdd/COPYING.LESSER b/src/bsdd/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/bsdd/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifc2ca/COPYING b/src/ifc2ca/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifc2ca/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifc2ca/COPYING.LESSER b/src/ifc2ca/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifc2ca/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifcbimtester/COPYING b/src/ifcbimtester/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifcbimtester/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifcbimtester/COPYING.LESSER b/src/ifcbimtester/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifcbimtester/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifccityjson/COPYING b/src/ifccityjson/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifccityjson/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifccityjson/COPYING.LESSER b/src/ifccityjson/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifccityjson/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifcclash/COPYING b/src/ifcclash/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifcclash/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifcclash/COPYING.LESSER b/src/ifcclash/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifcclash/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifccobie/COPYING b/src/ifccobie/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifccobie/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifccobie/COPYING.LESSER b/src/ifccobie/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifccobie/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifccsv/COPYING b/src/ifccsv/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifccsv/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifccsv/COPYING.LESSER b/src/ifccsv/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifccsv/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifcdiff/COPYING b/src/ifcdiff/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifcdiff/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifcdiff/COPYING.LESSER b/src/ifcdiff/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifcdiff/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifcfm/COPYING b/src/ifcfm/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifcfm/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifcfm/COPYING.LESSER b/src/ifcfm/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifcfm/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifcp6/COPYING b/src/ifcp6/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifcp6/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifcp6/COPYING.LESSER b/src/ifcp6/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifcp6/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifcpatch/COPYING b/src/ifcpatch/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifcpatch/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifcpatch/COPYING.LESSER b/src/ifcpatch/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifcpatch/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifcsverchok/COPYING b/src/ifcsverchok/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifcsverchok/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS From 2c5442acccc27f80bcc3a0c3e1619ac434585d32 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 4 Aug 2021 11:45:56 +1000 Subject: [PATCH 109/168] Fix #1124. Fix example and document quirk to prevent memory related bug. --- src/ifcopenshell-python/ifcopenshell/geom/main.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/geom/main.py b/src/ifcopenshell-python/ifcopenshell/geom/main.py index 5aeb6cfc17..5e56f9e663 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/main.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/main.py @@ -184,6 +184,9 @@ def create_shape(settings, inst, repr=None): or Return an OpenCASCADE BRep if settings.USE_PYTHON_OPENCASCADE == True + Note that in Python, you must store a reference to the element returned by this function to prevent garbage + collection when you access its children. See #1124. + example: settings = ifcopenshell.geom.settings() @@ -195,9 +198,12 @@ def create_shape(settings, inst, repr=None): for i, product in enumerate(products): if product.Representation is not None: try: - shape = geom.create_shape(settings, inst=product).geometry + created_shape = geom.create_shape(settings, inst=product) + shape = created_shape.geometry # see #1124 shape_gpXYZ = shape.Location().Transformation().TranslationPart() # These are methods of the TopoDS_Shape class from pythonOCC print(shape_gpXYZ.X(), shape_gpXYZ.Y(), shape_gpXYZ.Z()) # These are methods of the gpXYZ class from pythonOCC + except: + print("Shape creation failed") """ return wrap_shape_creation( settings, From 44f825529602e93e64a7a34f13c953f06da50182 Mon Sep 17 00:00:00 2001 From: Prabhat Singh <59395410+TestPrab@users.noreply.github.com> Date: Wed, 4 Aug 2021 07:44:24 +0530 Subject: [PATCH 110/168] Added BCF Server (#1626) --- .gitignore | 35 +++ src/bcf/bcf/v3/bcfapi.py | 8 +- src/bcfserver/README.md | 35 +++ src/bcfserver/app.py | 4 + src/bcfserver/requirements.txt | 25 ++ src/bcfserver/website/__init__.py | 17 + src/bcfserver/website/app.py | 0 src/bcfserver/website/forms.py | 54 ++++ src/bcfserver/website/models.py | 69 +++++ src/bcfserver/website/oauth2.py | 102 ++++++ src/bcfserver/website/routes.py | 293 ++++++++++++++++++ src/bcfserver/website/templates/base.html | 107 +++++++ .../website/templates/clientdata.html | 17 + .../website/templates/createclient.html | 28 ++ src/bcfserver/website/templates/index.html | 3 + src/bcfserver/website/templates/login.html | 27 ++ src/bcfserver/website/templates/oauth.html | 1 + src/bcfserver/website/templates/ologin.html | 28 ++ src/bcfserver/website/templates/register.html | 28 ++ 19 files changed, 877 insertions(+), 4 deletions(-) create mode 100644 src/bcfserver/README.md create mode 100644 src/bcfserver/app.py create mode 100644 src/bcfserver/requirements.txt create mode 100644 src/bcfserver/website/__init__.py create mode 100644 src/bcfserver/website/app.py create mode 100644 src/bcfserver/website/forms.py create mode 100644 src/bcfserver/website/models.py create mode 100644 src/bcfserver/website/oauth2.py create mode 100644 src/bcfserver/website/routes.py create mode 100644 src/bcfserver/website/templates/base.html create mode 100644 src/bcfserver/website/templates/clientdata.html create mode 100644 src/bcfserver/website/templates/createclient.html create mode 100644 src/bcfserver/website/templates/index.html create mode 100644 src/bcfserver/website/templates/login.html create mode 100644 src/bcfserver/website/templates/oauth.html create mode 100644 src/bcfserver/website/templates/ologin.html create mode 100644 src/bcfserver/website/templates/register.html diff --git a/.gitignore b/.gitignore index b9af203030..e7e24bc94a 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,39 @@ Pipfile.lock # Vim *.swp +### Flask ### +instance/* +!instance/.gitignore +.webassets-cache +.env +*.db + +### Flask.Python Stack ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + + +### Database ### +*.accdb +*.db +*.dbf +*.mdb +*.pdb +*.sqlite3 + +# Environments +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ +Pipfile +Pipfile.lock \ No newline at end of file diff --git a/src/bcf/bcf/v3/bcfapi.py b/src/bcf/bcf/v3/bcfapi.py index f6b12951ad..700e7deceb 100644 --- a/src/bcf/bcf/v3/bcfapi.py +++ b/src/bcf/bcf/v3/bcfapi.py @@ -76,7 +76,7 @@ class Client: def delete(self, endpoint, params=None): headers = {"Authorization": "Bearer " + self.get_access_token()} resp = requests.put( - f"{self.baseurl}{endpoint}", + f"{self.api_baseurl}{endpoint}", headers=headers, params=params or None, ) @@ -92,11 +92,11 @@ class Client: return self.access_token def get_auth_methods(self): - resp = requests.get(f"{self.baseurl}opencde/1.0/auth") + resp = requests.get(f"{self.baseurl}foundation/1.0/auth") return resp.json()["supported_oauth2_flows"] def get_versions(self): - resp = requests.get(f"{self.baseurl}opencde/versions") + resp = requests.get(f"{self.baseurl}foundation/versions") resp_values = resp.json()["versions"] for version in resp_values: if "api_base_url" in version: @@ -108,7 +108,7 @@ class Client: self.api_baseurl = self.version_ids[self.version] def login(self): - resp = requests.get(f"{self.baseurl}opencde/1.0/auth") + resp = requests.get(f"{self.baseurl}foundation/1.0/auth") values = resp.json() self.auth_endpoint = values["oauth2_auth_url"] self.token_endpoint = values["oauth2_token_url"] diff --git a/src/bcfserver/README.md b/src/bcfserver/README.md new file mode 100644 index 0000000000..52919237cb --- /dev/null +++ b/src/bcfserver/README.md @@ -0,0 +1,35 @@ +# Server-Test + +## Set up the server by installing the dependencies + +### run `pip install -r requirements.txt` to install the dependencies + +#### setup the database by running `db.create_all()` in python shell by importing db from website + +### run `set FLASK_APP=app.py` to set the environment variable + +### run `flask run` to start the server + +### Go to [http://localhost:5000](http://localhost:5000) to see the server + +# Register the user + +#### Go to [http://localhost:5000/register](http://localhost:5000/register) to register the user + +# Create the client + +#### For `grant type` enter `authorization_code` + +#### For `response_type` enter `code secret` + +### Enter the scope and create the client + +### You will be redirected to the page with the details of your client id and secret + +### Use the bcf/v3/api.py to get the access token + +#### For authentication endpoint use `http://localhost:5000/oauth/authorize` + +### For token endpoint use `http://localhost:5000/oauth/token` + +### Base URL will be `http://localhost:5000/` diff --git a/src/bcfserver/app.py b/src/bcfserver/app.py new file mode 100644 index 0000000000..1af101b3ae --- /dev/null +++ b/src/bcfserver/app.py @@ -0,0 +1,4 @@ +from website import app + +if __name__ == "__main__": + app.run(debug=True) diff --git a/src/bcfserver/requirements.txt b/src/bcfserver/requirements.txt new file mode 100644 index 0000000000..bc8e9910e0 --- /dev/null +++ b/src/bcfserver/requirements.txt @@ -0,0 +1,25 @@ +appdirs +bcrypt +black +cffi +click +colorama +dnspython +email-validator +Flask +Flask-Login +Flask-WTF1 +greenlet +idnatsdangerous +Jinja +MarkupSafe +mypy-extensions +pathspec +pycparserregex +six +SQLAlchemy +tomli +Werkzeug +WTForms +authlib +Flask-RESTful \ No newline at end of file diff --git a/src/bcfserver/website/__init__.py b/src/bcfserver/website/__init__.py new file mode 100644 index 0000000000..22e14092e7 --- /dev/null +++ b/src/bcfserver/website/__init__.py @@ -0,0 +1,17 @@ +from flask import Flask +from flask_sqlalchemy import SQLAlchemy +from flask_login import LoginManager +from flask_bcrypt import Bcrypt + +app = Flask(__name__) +db = SQLAlchemy(app) +login_manager = LoginManager(app) +bcrypt = Bcrypt(app) +app.config["SECRET_KEY"] = "f613729206685405cde0e388" +app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///sqlite.db" +login_manager.login_view = "login_page" +login_manager.login_message_category = "info" + + +from website import models, oauth2, routes + diff --git a/src/bcfserver/website/app.py b/src/bcfserver/website/app.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/bcfserver/website/forms.py b/src/bcfserver/website/forms.py new file mode 100644 index 0000000000..a7e94e0dfa --- /dev/null +++ b/src/bcfserver/website/forms.py @@ -0,0 +1,54 @@ +from flask_wtf import FlaskForm +from wtforms import StringField, PasswordField, BooleanField, SubmitField +from wtforms.validators import DataRequired, Length, Email, Regexp, EqualTo +from wtforms import ValidationError +from website.models import User + + +class RegisterForm(FlaskForm): + def validate_username(self, username_to_check): + user = User.query.filter_by(username=username_to_check.data).first() + if user: + raise ValidationError( + "Username already exists! Please try a different username" + ) + + def validate_email_address(self, email_address_to_check): + email_address = User.query.filter_by( + email_address=email_address_to_check.data + ).first() + if email_address: + raise ValidationError("Email Address already exists!") + + username = StringField( + label="User Name:", validators=[Length(min=2, max=30), DataRequired()] + ) + email_address = StringField( + label="Email Address:", validators=[Email(), DataRequired()] + ) + password1 = PasswordField( + label="Password:", validators=[Length(min=6), DataRequired()] + ) + password2 = PasswordField( + label="Confirm Password:", validators=[EqualTo("password1"), DataRequired()] + ) + submit = SubmitField(label="Create Account") + + +class LoginForm(FlaskForm): + username = StringField(label="User Name:", validators=[DataRequired()]) + password = PasswordField(label="Password:", validators=[DataRequired()]) + submit = SubmitField(label="Sign in") + + +class OauthForm(FlaskForm): + client_name = StringField(label="Client Name:", validators=[DataRequired()]) + # client_uri = StringField(label="Client URI:", validators=[DataRequired()]) + grant_types = StringField(label="Grant Types:", validators=[DataRequired()]) + # redirect_uris = StringField(label="Redirect URIs:", validators=[DataRequired()]) + response_types = StringField(label="Response Types:", validators=[DataRequired()]) + scope = StringField(label="Scope:", validators=[DataRequired()]) + # token_endpoint_auth_method = StringField( + # label="Token Endpoint Auth Method:", validators=[DataRequired()] + # ) + submit = SubmitField(label="Create OAuth") diff --git a/src/bcfserver/website/models.py b/src/bcfserver/website/models.py new file mode 100644 index 0000000000..f2845c4d14 --- /dev/null +++ b/src/bcfserver/website/models.py @@ -0,0 +1,69 @@ +from website import db, bcrypt, login_manager +import time +from authlib.integrations.sqla_oauth2 import ( + OAuth2ClientMixin, + OAuth2AuthorizationCodeMixin, + OAuth2TokenMixin, +) +from flask_login import UserMixin + + +@login_manager.user_loader +def load_user(user_id): + return User.query.get(int(user_id)) + + +class User(db.Model, UserMixin): + id = db.Column(db.Integer(), primary_key=True) + username = db.Column(db.String(50), unique=True, nullable=False) + password_hash = db.Column(db.String(80), nullable=False) + email_address = db.Column(db.String(50), unique=True, nullable=False) + + def __str__(self): + return f"{self.username} {self.email_address}" + + def get_user_id(self): + return self.id + + @property + def password(self): + return self.password + + @password.setter + def password(self, plain_text_password): + self.password_hash = bcrypt.generate_password_hash(plain_text_password).decode( + "utf-8" + ) + + def check_password(self, attempted_password): + return bcrypt.check_password_hash(self.password_hash, attempted_password) + + +class OAuth2Client(db.Model, OAuth2ClientMixin): + __tablename__ = "oauth2_client" + + id = db.Column(db.Integer, primary_key=True) + user_id = db.Column(db.Integer, db.ForeignKey("user.id", ondelete="CASCADE")) + user = db.relationship("User", lazy=True) + + +class OAuth2AuthorizationCode(db.Model, OAuth2AuthorizationCodeMixin): + __tablename__ = "oauth2_code" + + id = db.Column(db.Integer, primary_key=True) + user_id = db.Column(db.Integer, db.ForeignKey("user.id", ondelete="CASCADE")) + user = db.relationship("User", lazy=True) + + +class OAuth2Token(db.Model, OAuth2TokenMixin): + __tablename__ = "oauth2_token" + + id = db.Column(db.Integer, primary_key=True) + user_id = db.Column(db.Integer, db.ForeignKey("user.id", ondelete="CASCADE")) + user = db.relationship("User", lazy=True) + + def is_refresh_token_active(self): + if self.revoked: + return False + expires_at = self.issued_at + self.expires_in * 2 + return expires_at >= time.time() diff --git a/src/bcfserver/website/oauth2.py b/src/bcfserver/website/oauth2.py new file mode 100644 index 0000000000..b0d9e24b9f --- /dev/null +++ b/src/bcfserver/website/oauth2.py @@ -0,0 +1,102 @@ +from authlib.integrations.flask_oauth2 import ( + AuthorizationServer, + ResourceProtector, +) +from authlib.integrations.sqla_oauth2 import ( + create_query_client_func, + create_save_token_func, + create_revocation_endpoint, + create_bearer_token_validator, +) +from authlib.oauth2.rfc6749 import grants +from authlib.oauth2.rfc7636 import CodeChallenge +from .models import db, User +from .models import OAuth2Client, OAuth2AuthorizationCode, OAuth2Token + + +class AuthorizationCodeGrant(grants.AuthorizationCodeGrant): + TOKEN_ENDPOINT_AUTH_METHODS = [ + "client_secret_basic", + "client_secret_post", + "none", + ] + + def save_authorization_code(self, code, request): + code_challenge = request.data.get("code_challenge") + code_challenge_method = request.data.get("code_challenge_method") + auth_code = OAuth2AuthorizationCode( + code=code, + client_id=request.client.client_id, + redirect_uri=request.redirect_uri, + scope=request.scope, + user_id=request.user.id, + code_challenge=code_challenge, + code_challenge_method=code_challenge_method, + ) + db.session.add(auth_code) + db.session.commit() + return auth_code + + def query_authorization_code(self, code, client): + auth_code = OAuth2AuthorizationCode.query.filter_by( + code=code, client_id=client.client_id + ).first() + if auth_code and not auth_code.is_expired(): + return auth_code + + def delete_authorization_code(self, authorization_code): + db.session.delete(authorization_code) + db.session.commit() + + def authenticate_user(self, authorization_code): + return User.query.get(authorization_code.user_id) + + +class PasswordGrant(grants.ResourceOwnerPasswordCredentialsGrant): + def authenticate_user(self, username, password): + user = User.query.filter_by(username=username).first() + if user is not None and user.check_password(password): + return user + + +class RefreshTokenGrant(grants.RefreshTokenGrant): + def authenticate_refresh_token(self, refresh_token): + token = OAuth2Token.query.filter_by(refresh_token=refresh_token).first() + if token and token.is_refresh_token_active(): + return token + + def authenticate_user(self, credential): + return User.query.get(credential.user_id) + + def revoke_old_credential(self, credential): + credential.revoked = True + db.session.add(credential) + db.session.commit() + + +query_client = create_query_client_func(db.session, OAuth2Client) +save_token = create_save_token_func(db.session, OAuth2Token) +authorization = AuthorizationServer( + query_client=query_client, + save_token=save_token, +) +require_oauth = ResourceProtector() + + +def config_oauth(app): + authorization.init_app(app) + + # support all grants + authorization.register_grant(grants.ImplicitGrant) + authorization.register_grant(grants.ClientCredentialsGrant) + authorization.register_grant(AuthorizationCodeGrant, [CodeChallenge(required=True)]) + authorization.register_grant(PasswordGrant) + authorization.register_grant(RefreshTokenGrant) + + # support revocation + revocation_cls = create_revocation_endpoint(db.session, OAuth2Token) + authorization.register_endpoint(revocation_cls) + + # protect resource + bearer_cls = create_bearer_token_validator(db.session, OAuth2Token) + require_oauth.register_token_validator(bearer_cls()) diff --git a/src/bcfserver/website/routes.py b/src/bcfserver/website/routes.py new file mode 100644 index 0000000000..1ebe79ca56 --- /dev/null +++ b/src/bcfserver/website/routes.py @@ -0,0 +1,293 @@ +from os import supports_bytes_environ +from website import app +from flask import render_template, redirect, url_for, flash, request, jsonify +from website.models import User +from website.forms import RegisterForm, LoginForm, OauthForm +from website import db +from flask_login import login_user, logout_user, login_required, current_user +from .models import db, User, OAuth2Client, OAuth2AuthorizationCode, OAuth2Token +import base64 +from werkzeug.security import gen_salt +import time +import urllib +import json + + +def split_by_crlf(s): + return [v for v in s.splitlines() if v] + + +@app.route("/") +def homepage(): + return render_template("index.html") + + +@app.route("/register", methods=["GET", "POST"]) +def register_page(): + form = RegisterForm() + if form.validate_on_submit(): + user_to_create = User( + username=form.username.data, + email_address=form.email_address.data, + password=form.password1.data, + ) + + db.session.add(user_to_create) + db.session.commit() + login_user(user_to_create) + flash( + f"Account created successfully! {user_to_create.username}", + category="success", + ) + return redirect(url_for("homepage")) + if form.errors != {}: + for err_msg in form.errors.values(): + flash( + f"There was an error with creating a user: {err_msg}", category="danger" + ) + + return render_template("register.html", form=form) + + +@app.route("/createclient", methods=["GET", "POST"]) +@login_required +def create_client(): + grants = [ + "AuthorizationCodeGrant", + "ImplicitGrant", + "ResourceOwnerPasswordCredentialsGrant", + "ClientCredentialsGrant", + "RefreshTokenGrant", + ] + form = OauthForm() + if form.validate_on_submit(): + client_id = gen_salt(24) + client_id_issued_at = int(time.time()) + + client = OAuth2Client( + client_id=client_id, + client_id_issued_at=client_id_issued_at, + user_id=current_user.id, + ) + client_metadata = { + "client_name": form.client_name.data, + "grant_types": split_by_crlf(form.grant_types.data), + "response_types": split_by_crlf(form.response_types.data), + "scope": form.scope.data, + "token_endpoint_auth_method": "client_secret_basic", + } + client.client_secret = gen_salt(48) + + client.set_client_metadata(client_metadata) + db.session.add(client) + db.session.commit() + flash( + "Oauth Client Created Successfully", + category="info", + ) + clients = OAuth2Client.query.filter_by(user_id=current_user.id).all() + for client in clients: + print(client.client_info) + print(client.client_metadata) + return render_template("clientdata.html", user=current_user.id, clients=clients) + return render_template("createclient.html", form=form, grants=grants) + + +@app.route("/login", methods=["GET", "POST"]) +def login_page(): + form = LoginForm() + if form.validate_on_submit(): + attempted_user = User.query.filter_by(username=form.username.data).first() + if attempted_user and attempted_user.check_password( + attempted_password=form.password.data + ): + login_user(attempted_user) + return redirect(url_for("homepage")) + else: + flash( + "Invalid Credentials", + category="danger", + ) + + return render_template("login.html", form=form) + + +@app.route("/logout") +def logoutpage(): + logout_user() + flash("You have been logged out!", category="info") + return redirect(url_for("homepage")) + + +@app.route("/foundation/1.0/auth") +def foundation_auth(): + data = { + "oauth2_auth_url": "http://127.0.0.1:5000/oauth/authorize", + "oauth2_token_url": "http://127.0.0.1:5000/oauth/token", + "supported_oauth2_flows": ["authorization_code"], + } + response = app.response_class( + response=json.dumps(data), status=200, mimetype="application/json" + ) + return response + + +@app.route("/foundation/versions") +def foundation_versions(): + Body = { + "versions": [ + { + "api_id": "opencde-foundation", + "version_id": "1.0", + "detailed_version": "https://github.com/BuildingSMART/opencde-foundation-API/tree/v1.0", + }, + # { + # "api_id": "bcf", + # "version_id": "2.1", + # "detailed_version": "https://github.com/buildingSMART/BCF-API/tree/release_2_1", + # "api_base_url": "http://127.0.0.1:5000/bcf/2.1" + # }, + { + "api_id": "bcf", + "version_id": "3.0", + "detailed_version": "https://github.com/buildingSMART/BCF-API/tree/release_3_0", + "api_base_url": "http://127.0.0.1:5000/bcf/3.0", + }, + ] + } + response = app.response_class( + response=json.dumps(Body), status=200, mimetype="application/json" + ) + return response + + +@app.route("/outh/login", methods=["GET", "POST"]) +def oauth_login(): + form = LoginForm() + if form.validate_on_submit(): + attempted_user = User.query.filter_by(username=form.username.data).first() + if attempted_user and attempted_user.check_password( + attempted_password=form.password.data + ): + login_user(attempted_user) + flash( + "Invalid Credentials", + category="info", + ) + client_id = request.args.get("client_id") + redirect_uri = request.args.get("redirect_uri") + state = request.args.get("state") + return redirect( + url_for( + "authorize", + client_id=client_id, + redirect_uri=redirect_uri, + state=state, + ) + ) + else: + flash( + "Invalid Credentials", + category="danger", + ) + return render_template("ologin.html", form=form) + + +@app.route("/oauth/authorize", methods=["GET", "POST"]) +def authorize(): + client_id = request.args.get("client_id") + redirect_uri = request.args.get("redirect_uri") + state = request.args.get("state") + if current_user.is_anonymous: + flash("Please Login !", category="info") + query = request.query_string + return redirect( + url_for( + "oauth_login", + client_id=client_id, + redirect_uri=redirect_uri, + state=state, + ) + ) + else: + try: + + user = current_user.id + flash(message=redirect_uri, category="warning") + client = OAuth2Client.query.filter_by(client_id=client_id).first() + if client: + if client.user_id == user: + code = gen_salt(48) + OauthCode = OAuth2AuthorizationCode( + client_id=client_id, + redirect_uri=redirect_uri, + user_id=user, + code=code, + response_type="code", + ) + db.session.add(OauthCode) + db.session.commit() + query = urllib.parse.urlencode( + { + "code": OauthCode.code, + "state": state, + } + ) + return redirect(f"{redirect_uri}?{query}") + else: + flash( + "You are not authorized to access this client", + category="danger", + ) + else: + flash("Client not found", category="danger") + except Exception as e: + flash(e, category="danger") + return render_template("oauth.html") + + +@app.route("/oauth/token", methods=["POST"]) +def issue_token(): + try: + code = request.form["code"] + Headers = str.split(request.headers["Authorization"]) + decode_header = base64.b64decode(Headers[1]).decode("utf-8") + creds = decode_header.split(":") + client_id = creds[0] + auth_code = OAuth2AuthorizationCode.query.filter_by(code=code).first() + if auth_code: + if auth_code.client_id == client_id: + access_token = gen_salt(48) + refresh_token = gen_salt(48) + expires_in = 3600 + OauthToken = OAuth2Token( + client_id=auth_code.client_id, + user_id=auth_code.user_id, + access_token=access_token, + refresh_token=refresh_token, + expires_in=expires_in, + scope=auth_code.scope, + token_type="Bearer", + ) + db.session.add(OauthToken) + db.session.commit() + query = { + "access_token": access_token, + "refresh_token": refresh_token, + "expires_in": expires_in, + "auth_code": auth_code.scope, + } + response = app.response_class( + response=json.dumps(query), status=200, mimetype="application/json" + ) + return response + else: + flash( + "You are not authorized to access this client", + category="danger", + ) + else: + flash("Client not found", category="danger") + except Exception as e: + flash(e, category="danger") + return render_template("oauth.html") diff --git a/src/bcfserver/website/templates/base.html b/src/bcfserver/website/templates/base.html new file mode 100644 index 0000000000..b55f4839e9 --- /dev/null +++ b/src/bcfserver/website/templates/base.html @@ -0,0 +1,107 @@ + + + + + + + + + {% block title %} {% endblock %} + + + + {% with messages = get_flashed_messages(with_categories=true) %} {% if + messages %} {% for category, message in messages %} +
+ + {{ message }} +
+ {% endfor %} {% endif %} {% endwith %} {% block content %} {% endblock %} + + + + + + + + + + diff --git a/src/bcfserver/website/templates/clientdata.html b/src/bcfserver/website/templates/clientdata.html new file mode 100644 index 0000000000..ee434e5861 --- /dev/null +++ b/src/bcfserver/website/templates/clientdata.html @@ -0,0 +1,17 @@ +{%extends 'base.html'%} {%block content%} {% if user %} + +
Logged in as {{user}}
+ +{% for client in clients %} +
+{{ client.client_info|tojson }}
+{{ client.client_metadata|tojson }}
+
+
+{% endfor %} {% else %} +
Not logged in
+{% endif %} {% endblock %} diff --git a/src/bcfserver/website/templates/createclient.html b/src/bcfserver/website/templates/createclient.html new file mode 100644 index 0000000000..51883fb79a --- /dev/null +++ b/src/bcfserver/website/templates/createclient.html @@ -0,0 +1,28 @@ +{%extends 'base.html' %} {%block title %} {% endblock%} {%block content%} + +
+
+ {{form.hidden_tag()}} +

+ Register +

+ {{form.client_name.label()}} {{form.client_name(class="form-control", + placeholder="Client_name")}} + + {{form.grant_types.label()}} {{form.grant_types(class="form-control", + placeholder="Grant_Types")}} {{form.response_types.label()}} + {{form.response_types(class="form-control", + placeholder="Response_Types")}} {{form.scope.label()}} + {{form.scope(class="form-control", placeholder="Scope")}} +
+ {{form.submit(class="btn btn-lg btn-primary btn-block" ,value="Create + Oauth Credentials")}} +
+
+ +{% endblock %} diff --git a/src/bcfserver/website/templates/index.html b/src/bcfserver/website/templates/index.html new file mode 100644 index 0000000000..b1e30edb58 --- /dev/null +++ b/src/bcfserver/website/templates/index.html @@ -0,0 +1,3 @@ +{%extends 'base.html'%} {%block title%} Homepage {%endblock%} {%block content%} +

BCF Open Source Server Homepage

+{%endblock%} diff --git a/src/bcfserver/website/templates/login.html b/src/bcfserver/website/templates/login.html new file mode 100644 index 0000000000..4ba908b285 --- /dev/null +++ b/src/bcfserver/website/templates/login.html @@ -0,0 +1,27 @@ +{% extends 'base.html' %} {% block title %}{% endblock %} {% block content %} + +
+ +
+ +{% endblock %} diff --git a/src/bcfserver/website/templates/oauth.html b/src/bcfserver/website/templates/oauth.html new file mode 100644 index 0000000000..98df53491d --- /dev/null +++ b/src/bcfserver/website/templates/oauth.html @@ -0,0 +1 @@ +{%extends "base.html"%} {%block content%} this is Oauth page {%endblock%} diff --git a/src/bcfserver/website/templates/ologin.html b/src/bcfserver/website/templates/ologin.html new file mode 100644 index 0000000000..672c447b21 --- /dev/null +++ b/src/bcfserver/website/templates/ologin.html @@ -0,0 +1,28 @@ +{% extends 'base.html' %} {% block title %}{% endblock %} {% block content %} + +
+ +
+ +{% endblock %} diff --git a/src/bcfserver/website/templates/register.html b/src/bcfserver/website/templates/register.html new file mode 100644 index 0000000000..faf87694c9 --- /dev/null +++ b/src/bcfserver/website/templates/register.html @@ -0,0 +1,28 @@ +{%extends 'base.html' %} {%block title %} {% endblock%} {%block content%} + +
+
+ {{form.hidden_tag()}} +

+ Register +

+ {{form.username.label()}} {{form.username(class="form-control" + ,placeholder="Username")}} {{form.email_address.label()}} + {{form.email_address(class="form-control" ,placeholder="Email Address")}} + {{form.password1.label()}} + {{form.password1(class="form-control",placeholder="Password")}} + {{form.password2.label()}} {{form.password2(class="form-control" + ,placeholder="Confirm Password")}} +
+
+
Already have an account?
+ Login +
+ {{form.submit(class="btn btn-lg btn-primary btn-block" + ,value="Register")}} +
+
+ +{% endblock %} From 562b52023358636afcf0f3bba13a5d0a5820ee19 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 4 Aug 2021 18:03:52 +1000 Subject: [PATCH 111/168] Split BCF-API client and OpenCDE Foundation-API client system --- .gitignore | 32 +++------- src/bcf/README.md | 27 +++++---- src/bcf/bcf/v3/bcfapi.py | 122 +++++++++++++++++++-------------------- 3 files changed, 79 insertions(+), 102 deletions(-) diff --git a/.gitignore b/.gitignore index e7e24bc94a..a2c6c45d16 100644 --- a/.gitignore +++ b/.gitignore @@ -35,39 +35,21 @@ Pipfile.lock # Vim *.swp -### Flask ### +# Flask instance/* !instance/.gitignore .webassets-cache .env *.db - -### Flask.Python Stack ### # Byte-compiled / optimized / DLL files -__pycache__/ *.py[cod] *$py.class -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - - -### Database ### -*.accdb -*.db -*.dbf -*.mdb -*.pdb -*.sqlite3 - -# Environments -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ +# pipenv Pipfile -Pipfile.lock \ No newline at end of file +Pipfile.lock + +# Database +*.db + diff --git a/src/bcf/README.md b/src/bcf/README.md index c01a4e58a7..e36979a33b 100644 --- a/src/bcf/README.md +++ b/src/bcf/README.md @@ -66,35 +66,34 @@ bcfxml.edit_topic(topic) The `bcfapi` module lets you interact with the BCF-API standard. ```python -from bcf.v3.bcfapi import Client +from bcf.v3.bcfapi import AuthClient, BcfClient -client_id = "YOUR_CLIENT_ID" -client_secret = "YOUR_CLIENT_SECRET" - -client = Client(client_id, client_secret) -client.set_urls(base_url="OPENCDE_BASEURL") -auth_methods = client.get_auth_methods() +foundation_client = FoundationClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "OPENCDE_BASEURL") +auth_methods = foundation_client.get_auth_methods() # Our library currently only implements the authorization_code flow if "authorization_code" in auth_methods: - client.login() + auth_client.login() -versions = client.get_versions() +bcf_client = BcfClient() +versions = foundation_client.get_versions() +for version in versions: if "3.0" in versions: - client.set_version(version="3.0") + if version["api_id"] == "bcf" and version["version_id"] == "3.0": + bcf_client.set_version(version) -data = client.get_projects() +data = bcf_client.get_projects() print(data) project_id = data[0]["project_id"] print(project_id) -data = client.get_project(project_id) +data = bcf_client.get_project(project_id) print(data) -data = client.get_extensions(project_id) +data = bcf_client.get_extensions(project_id) print(data) ``` -## Todo List +## Todo List The remaining work that needs to be completed in `bcfxml.py` and `bcfapi.py`. * For `bcfxml.py` two xsds support is remaining namely 'documents.xsd` and `extensions.xsd`. * For `bcfapi.py` two requests that are `get_topics` and `get_comments` are remaining. diff --git a/src/bcf/bcf/v3/bcfapi.py b/src/bcf/bcf/v3/bcfapi.py index 700e7deceb..b2571573f8 100644 --- a/src/bcf/bcf/v3/bcfapi.py +++ b/src/bcf/bcf/v3/bcfapi.py @@ -22,9 +22,9 @@ class OAuthReceiver(http.server.BaseHTTPRequestHandler): self.wfile.write("You have now authenticated :) You may now close this browser window.".encode("utf-8")) -class Client: - def __init__(self, client_id, client_secret): - self.baseurl = None +class FoundationClient: + def __init__(self, client_id, client_secret, base_url=None, redirect_subdir=None): + self.baseurl = base_url self.access_token = "" self.refresh_token = "" self.access_token_expires_on = time.time() @@ -33,54 +33,8 @@ class Client: self.token_endpoint = None self.client_id = client_id self.client_secret = client_secret - self.version_ids = {} - self.version = None self.auth_method = None - self.redirect_uri = None - self.api_baseurl = None - - def get(self, endpoint, params=None, is_auth_required=False): - headers = {"Authorization": "Bearer " + self.get_access_token()} - return requests.get(f"{self.api_baseurl}{endpoint}", headers=headers, params=params or None).json() - - def post(self, endpoint, data=None, params=None): - headers = { - "Authorization": "Bearer " + self.get_access_token(), - "Content-type": "application/json", - } - resp = requests.post( - f"{self.api_baseurl}{endpoint}", - headers=headers, - params=params or None, - data=data or None, - ) - return resp.status_code, resp.text - - def put(self, endpoint, data=None, params=None): - headers = { - "Authorization": "Bearer " + self.get_access_token(), - "Content-type": "application/json", - } - resp = requests.put( - f"{self.baseurl}{endpoint}", - headers=headers, - params=params or None, - data=data or None, - ) - return resp.status_code, resp.text - - def set_urls(self, base_url=None, redirect_uri=None): - self.baseurl = base_url - self.redirect_uri = redirect_uri - - def delete(self, endpoint, params=None): - headers = {"Authorization": "Bearer " + self.get_access_token()} - resp = requests.put( - f"{self.api_baseurl}{endpoint}", - headers=headers, - params=params or None, - ) - return resp.status_code + self.redirect_subdir = redirect_subdir def get_access_token(self): if self.access_token and self.access_token_expires_on > time.time(): @@ -97,15 +51,7 @@ class Client: def get_versions(self): resp = requests.get(f"{self.baseurl}foundation/versions") - resp_values = resp.json()["versions"] - for version in resp_values: - if "api_base_url" in version: - self.version_ids.update({version["version_id"]: version["api_base_url"]}) - return self.version_ids - - def set_version(self, version=None): - self.version = version - self.api_baseurl = self.version_ids[self.version] + return resp.json()["versions"] def login(self): resp = requests.get(f"{self.baseurl}foundation/1.0/auth") @@ -120,7 +66,7 @@ class Client: "client_id": self.client_id, "response_type": "code", "state": state, - "redirect_uri": f"http://localhost:{server.server_address[1]}/{self.redirect_uri}", + "redirect_uri": f"http://localhost:{server.server_address[1]}/{self.redirect_subdir}", } ) if "?" in self.auth_endpoint: @@ -134,7 +80,7 @@ class Client: data = { "grant_type": "authorization_code", "code": server.auth_code, - "redirect_uri": f"http://localhost:{server.server_address[1]}/{self.redirect_uri}", + "redirect_uri": f"http://localhost:{server.server_address[1]}/{self.redirect_subdir}", } auth_string = f"{self.client_id}:{self.client_secret}" header_string = base64.b64encode(auth_string.encode("utf-8")).decode("utf-8") @@ -181,6 +127,56 @@ class Client: if "refresh_token_expires_in" in response: self.refresh_token_expires_on = time.time() + response["refresh_token_expires_in"] + +class BcfClient: + def __init__(self, foundation_client): + self.foundation_client = foundation_client + self.version_id = None + self.baseurl = None + + def set_version(self, version): + self.version_id = version["version_id"] + self.baseurl = version["api_base_url"] + + def get(self, endpoint, params=None, is_auth_required=False): + headers = {"Authorization": "Bearer " + self.foundation_client.get_access_token()} + return requests.get(f"{self.baseurl}{endpoint}", headers=headers, params=params or None).json() + + def post(self, endpoint, data=None, params=None): + headers = { + "Authorization": "Bearer " + self.foundation_client.get_access_token(), + "Content-type": "application/json", + } + resp = requests.post( + f"{self.baseurl}{endpoint}", + headers=headers, + params=params or None, + data=data or None, + ) + return resp.status_code, resp.text + + def put(self, endpoint, data=None, params=None): + headers = { + "Authorization": "Bearer " + self.foundation_client.get_access_token(), + "Content-type": "application/json", + } + resp = requests.put( + f"{self.baseurl}{endpoint}", + headers=headers, + params=params or None, + data=data or None, + ) + return resp.status_code, resp.text + + def delete(self, endpoint, params=None): + headers = {"Authorization": "Bearer " + self.foundation_client.get_access_token()} + resp = requests.put( + f"{self.baseurl}{endpoint}", + headers=headers, + params=params or None, + ) + return resp.status_code + def get_projects(self) -> list: return self.get( f"/projects", @@ -199,7 +195,7 @@ class Client: def update_project(self, project_id="", data=None) -> dict: url = f"{self.baseurl}/projects/{project_id}" - headers = {"Authorization": "Bearer " + self.get_access_token()} + headers = {"Authorization": "Bearer " + self.foundation_client.get_access_token()} resp = requests.put(url, headers=headers, data=data) return resp.status_code, resp.text @@ -484,7 +480,7 @@ class Client: data=None, ): headers = { - "Authorization": "Bearer " + self.get_access_token(), + "Authorization": "Bearer " + self.foundation_client.get_access_token(), "Content-type": "application/octet-stream", } response = requests.post( From d71e89f8235d6453349c98c8bd2cb71f9942e649 Mon Sep 17 00:00:00 2001 From: Boris Brangeon Date: Wed, 4 Aug 2021 11:55:51 +0200 Subject: [PATCH 112/168] Update selector.py (#1627) Add new inverse_relationship ==> boundedby If Entity IfcRelSpaceBoundary exist then hasattr(element, "BoundedBy") is True and relationship.RelatedBuildingElement exist. New Rule Lark : "@@ .IfcSpace[Name *= \"Bedroom\"] & .IfcSlab" --- src/ifcopenshell-python/ifcopenshell/util/selector.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/selector.py b/src/ifcopenshell-python/ifcopenshell/util/selector.py index dd7fc99c4d..bfdc50c1d0 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/selector.py +++ b/src/ifcopenshell-python/ifcopenshell/util/selector.py @@ -20,9 +20,10 @@ class Selector: filter_value: ESCAPED_STRING pset_or_qto: /[A-Za-z0-9_]+/ "." /[A-Za-z0-9_]+/ lfunction: and | or - inverse_relationship: types | contains_elements + inverse_relationship: types | contains_elements | boundedby types: "*" contains_elements: "@" + boundedby: "@@" and: "&" or: "|" comparison: contains | morethanequalto | lessthanequalto | equal | morethan | lessthan @@ -116,6 +117,9 @@ class Selector: elif inverse_relationship == "contains_elements" and hasattr(element, "ContainsElements"): for relationship in element.ContainsElements: results.extend(relationship.RelatedElements) + elif inverse_relationship == "boundedby" and hasattr(element, "BoundedBy"): + for relationship in element.BoundedBy: + results.append(relationship.RelatedBuildingElement) return results def get_class_selector(self, class_selector): From 3bb3a8018aadbe9bd25ba722523c64ddbabf69dc Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 4 Aug 2021 20:27:00 +1000 Subject: [PATCH 113/168] Fix bug where materials weren't created when importing assets from a library --- src/blenderbim/blenderbim/bim/import_ifc.py | 18 ++++++++---- .../blenderbim/bim/module/project/operator.py | 28 +++++++++++++++++++ .../ifcopenshell/util/element.py | 4 +-- 3 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 4741c5d134..18583c357e 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -1069,10 +1069,14 @@ class IfcImporter: def create_materials(self): for material in self.file.by_type("IfcMaterial"): - blender_material = bpy.data.materials.new(material.Name) - self.link_element(material, blender_material) - self.material_creator.materials[material.id()] = blender_material - blender_material.use_fake_user = True + self.create_material(material) + + def create_material(self, material): + blender_material = bpy.data.materials.new(material.Name) + self.link_element(material, blender_material) + self.material_creator.materials[material.id()] = blender_material + blender_material.use_fake_user = True + return blender_material def create_styles(self): parsed_styles = set() @@ -1088,11 +1092,13 @@ class IfcImporter: for style in self.file.by_type("IfcSurfaceStyle"): if style.id() in parsed_styles: continue + self.create_style(style) + + def create_style(self, style, blender_material=None): + if not blender_material: name = style.Name or str(style.id()) blender_material = bpy.data.materials.new(name) - self.create_style(style, blender_material) - def create_style(self, style, blender_material): old_definition_id = blender_material.BIMObjectProperties.ifc_definition_id if not old_definition_id: self.link_element(style, blender_material) diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index 15401996ae..b30a8bdc74 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -346,9 +346,37 @@ class AppendLibraryElement(bpy.types.Operator): ifc_importer = import_ifc.IfcImporter(ifc_import_settings) ifc_importer.file = self.file ifc_importer.type_collection = type_collection + self.import_type_materials(element, ifc_importer) + self.import_type_styles(element, ifc_importer) ifc_importer.create_type_product(element) ifc_importer.place_objects_in_spatial_tree() + def import_type_materials(self, element, ifc_importer): + for rel in element.HasAssociations: + if not rel.is_a("IfcRelAssociatesMaterial"): + continue + for material in [e for e in self.file.traverse(rel) if e.is_a("IfcMaterial")]: + if IfcStore.get_element(material.id()): + continue + blender_material = ifc_importer.create_material(material) + self.import_material_styles(blender_material, material, ifc_importer) + + def import_type_styles(self, element, ifc_importer): + for representation_map in element.RepresentationMaps or []: + for element in self.file.traverse(representation_map): + if not element.is_a("IfcRepresentationItem") or not element.StyledByItem: + continue + for element2 in self.file.traverse(element.StyledByItem[0]): + if element2.is_a("IfcSurfaceStyle") and not IfcStore.get_element(element2.id()): + ifc_importer.create_style(element2) + + def import_material_styles(self, blender_material, material, ifc_importer): + if not material.HasRepresentation: + return + for element in self.file.traverse(material.HasRepresentation[0]): + if element.is_a("IfcSurfaceStyle") and not IfcStore.get_element(element.id()): + ifc_importer.create_style(element, blender_material) + class EnableEditingHeader(bpy.types.Operator): bl_idname = "bim.enable_editing_header" diff --git a/src/ifcopenshell-python/ifcopenshell/util/element.py b/src/ifcopenshell-python/ifcopenshell/util/element.py index f245f9b4e8..1dfeac623b 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/element.py +++ b/src/ifcopenshell-python/ifcopenshell/util/element.py @@ -74,9 +74,7 @@ def get_material(element, should_skip_usage=False): return relationship.RelatingMaterial relating_type = get_type(element) if hasattr(relating_type, "HasAssociations") and relating_type.HasAssociations: - for relationship in relating_type.HasAssociations: - if relationship.is_a("IfcRelAssociatesMaterial"): - return relationship.RelatingMaterial + return get_material(relating_type, should_skip_usage) def get_container(element): From 00bf08c220d5f86691492163633ac8e7a6f84f2a Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 4 Aug 2021 20:45:46 +1000 Subject: [PATCH 114/168] Walls are now dynamically voided when joining, so you can join/unjoin voided walls --- .../blenderbim/bim/module/model/__init__.py | 1 + .../blenderbim/bim/module/model/product.py | 31 +++++++++++++++++++ .../blenderbim/bim/module/model/wall.py | 20 ++---------- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 944583776f..5227400c96 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -4,6 +4,7 @@ from . import handler, prop, ui, grid, product, wall, slab, stair, door, window, classes = ( product.AddTypeInstance, product.AlignProduct, + product.DynamicallyVoidProduct, workspace.Hotkey, wall.JoinWall, wall.AlignWall, diff --git a/src/blenderbim/blenderbim/bim/module/model/product.py b/src/blenderbim/blenderbim/bim/module/model/product.py index b23c5ac4a3..7374d66e67 100644 --- a/src/blenderbim/blenderbim/bim/module/model/product.py +++ b/src/blenderbim/blenderbim/bim/module/model/product.py @@ -120,6 +120,37 @@ class AlignProduct(bpy.types.Operator): return results +class DynamicallyVoidProduct(bpy.types.Operator): + bl_idname = "bim.dynamically_void_product" + bl_label = "Dynamically Void Product" + bl_options = {"REGISTER", "UNDO"} + obj: bpy.props.StringProperty() + + def execute(self, context): + obj = bpy.data.objects.get(self.obj) + product = IfcStore.get_file().by_id(obj.BIMObjectProperties.ifc_definition_id) + if not product.HasOpenings: + return {"FINISHED"} + if [m for m in obj.modifiers if m.type == "BOOLEAN"]: + return {"FINISHED"} + representation = ifcopenshell.util.representation.get_representation(product, "Model", "Body", "MODEL_VIEW") + if not representation: + return {"FINISHED"} + was_edit_mode = obj.mode == "EDIT" + if was_edit_mode: + bpy.ops.object.mode_set(mode="OBJECT") + bpy.ops.bim.switch_representation( + obj=obj.name, + should_switch_all_meshes=True, + should_reload=True, + ifc_definition_id=representation.id(), + disable_opening_subtractions=True, + ) + if was_edit_mode: + bpy.ops.object.mode_set(mode="EDIT") + return {"FINISHED"} + + def generate_box(usecase_path, ifc_file, settings): box_context = ifcopenshell.util.representation.get_context(ifc_file, "Model", "Box", "MODEL_VIEW") if not box_context: diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 756dbb1a67..f5e58c0fc2 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -33,23 +33,7 @@ def mode_callback(obj, data): parametric = ifcopenshell.util.element.get_psets(product).get("EPset_Parametric") if not parametric or parametric["Engine"] != "BlenderBIM.DumbWall": return - if product.HasOpenings: - if [m for m in obj.modifiers if m.type == "BOOLEAN"]: - continue - representation = ifcopenshell.util.representation.get_representation( - product, "Model", "Body", "MODEL_VIEW" - ) - if not representation: - continue - bpy.ops.object.mode_set(mode='OBJECT') - bpy.ops.bim.switch_representation( - obj=obj.name, - should_switch_all_meshes=True, - should_reload=True, - ifc_definition_id=representation.id(), - disable_opening_subtractions=True, - ) - bpy.ops.object.mode_set(mode='EDIT') + bpy.ops.bim.dynamically_void_product(obj=obj.name) IfcStore.edited_objs.add(obj) bm = bmesh.from_edit_mesh(obj.data) bmesh.ops.dissolve_limit(bm, angle_limit=pi / 180 * 1, verts=bm.verts, edges=bm.edges) @@ -103,6 +87,8 @@ class JoinWall(bpy.types.Operator): def execute(self, context): selected_objs = context.selected_objects + for obj in selected_objs: + bpy.ops.bim.dynamically_void_product(obj=obj.name) if len(selected_objs) == 0: return {"FINISHED"} if not self.join_type: From b149f4f56de993c664e1dda7310072b6ab50cd19 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 4 Aug 2021 18:24:47 +0200 Subject: [PATCH 115/168] #1047 --- src/ifcwrap/IfcPython.i | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ifcwrap/IfcPython.i b/src/ifcwrap/IfcPython.i index bdbfbc313f..299c33e5ab 100644 --- a/src/ifcwrap/IfcPython.i +++ b/src/ifcwrap/IfcPython.i @@ -154,3 +154,7 @@ %include "IfcGeomWrapper.i" %include "IfcParseWrapper.i" + +namespace std { + %template(float_array_3) array; +} From 94f061275292df119ed5ca50f4f126a798f98c74 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 5 Aug 2021 13:21:55 +1000 Subject: [PATCH 116/168] WIP copyright statements. See #1082. Also IFCP6 is now IFC4D as we will expand into more 4D apps and widen the scope. --- README.md | 2 +- src/blenderbim/Makefile | 4 ++-- .../bim/module/sequence/operator.py | 4 ++-- src/bsdd/bsdd.py | 19 ++++++++++++++++++ src/{ifcp6 => ifc4d}/COPYING | 0 src/{ifcp6 => ifc4d}/COPYING.LESSER | 0 src/ifc4d/README.md | 6 ++++++ src/{ifcp6/ifcp6 => ifc4d/ifc4d}/msp2ifc.py | 0 src/{ifcp6/ifcp6 => ifc4d/ifc4d}/p62ifc.py | 0 src/ifcclash/bootstrap.py | 20 +++++++++++++++++++ src/ifcclash/ifcclash/__main__.py | 19 ++++++++++++++++++ src/ifcclash/ifcclash/collider.py | 19 ++++++++++++++++++ src/ifcclash/ifcclash/ifcclash.py | 19 ++++++++++++++++++ src/ifcclash/make.py | 20 +++++++++++++++++++ src/ifccobie/cobie.py | 19 ++++++++++++++++++ src/ifccobie/get_maintainable_assets.py | 19 ++++++++++++++++++ src/ifccsv/ifccsv.py | 19 ++++++++++++++++++ src/ifcdiff/ifcdiff.py | 19 ++++++++++++++++++ src/ifcfm/ifcfm/parser.py | 19 ++++++++++++++++++ src/ifcfm/ifcfm/writer.py | 19 ++++++++++++++++++ 20 files changed, 241 insertions(+), 5 deletions(-) rename src/{ifcp6 => ifc4d}/COPYING (100%) rename src/{ifcp6 => ifc4d}/COPYING.LESSER (100%) create mode 100644 src/ifc4d/README.md rename src/{ifcp6/ifcp6 => ifc4d/ifc4d}/msp2ifc.py (100%) rename src/{ifcp6/ifcp6 => ifc4d/ifc4d}/p62ifc.py (100%) diff --git a/README.md b/README.md index 74ae645805..5b7682f829 100644 --- a/README.md +++ b/README.md @@ -230,6 +230,7 @@ bcf | LGPL-3.0-or-later blenderbim | GPL-3.0-or-later bsdd | LGPL-3.0-or-later ifc2ca | LGPL-3.0-or-later +ifc4d | LGPL-3.0-or-later ifcbimtester | LGPL-3.0-or-later ifcblender | LGPL-3.0-or-later\* ifccityjson | LGPL-3.0-or-later @@ -245,7 +246,6 @@ ifcgeomserver | LGPL-3.0-or-later\* ifcjni | LGPL-3.0-or-later\* ifcmax | LGPL-3.0-or-later\* ifcopenshell-python | LGPL-3.0-or-later\* -ifcp6 | LGPL-3.0-or-later ifcparse | LGPL-3.0-or-later\* ifcpatch | LGPL-3.0-or-later ifcsverchok | GPL-3.0-or-later diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile index 7277fa9446..47f491b142 100644 --- a/src/blenderbim/Makefile +++ b/src/blenderbim/Makefile @@ -119,8 +119,8 @@ endif cp -r dist/working/IfcOpenShell-0.6.0/src/ifccsv/* dist/blenderbim/libs/site/packages/ # Provides IFCPatch functionality cp -r dist/working/IfcOpenShell-0.6.0/src/ifcpatch/ifcpatch dist/blenderbim/libs/site/packages/ - # Provides IFCP6 functionality - cp -r dist/working/IfcOpenShell-0.6.0/src/ifcp6/ifcp6 dist/blenderbim/libs/site/packages/ + # Provides IFC4D functionality + cp -r dist/working/IfcOpenShell-0.6.0/src/ifc4d/ifc4d dist/blenderbim/libs/site/packages/ rm -rf dist/working # Provides Mustache templating in construction documentation diff --git a/src/blenderbim/blenderbim/bim/module/sequence/operator.py b/src/blenderbim/blenderbim/bim/module/sequence/operator.py index 994838bec4..30ac8f770e 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/operator.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/operator.py @@ -996,7 +996,7 @@ class ImportP6(bpy.types.Operator, ImportHelper): filter_glob: bpy.props.StringProperty(default="*.xml", options={"HIDDEN"}) def execute(self, context): - from ifcp6.p62ifc import P62Ifc + from ifc4d.p62ifc import P62Ifc self.file = IfcStore.get_file() start = time.time() @@ -1018,7 +1018,7 @@ class ImportMSP(bpy.types.Operator, ImportHelper): filter_glob: bpy.props.StringProperty(default="*.xml", options={"HIDDEN"}) def execute(self, context): - from ifcp6.msp2ifc import MSP2Ifc + from ifc4d.msp2ifc import MSP2Ifc self.file = IfcStore.get_file() start = time.time() diff --git a/src/bsdd/bsdd.py b/src/bsdd/bsdd.py index ad45fb5fe1..0e0f704cc5 100644 --- a/src/bsdd/bsdd.py +++ b/src/bsdd/bsdd.py @@ -1,3 +1,22 @@ + +# bSDD - Python bSDD library +# Copyright (C) 2021 Dion Moult +# +# This file is part of bSDD. +# +# bSDD is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# bSDD 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with bSDD. If not, see . + import uuid import time import json diff --git a/src/ifcp6/COPYING b/src/ifc4d/COPYING similarity index 100% rename from src/ifcp6/COPYING rename to src/ifc4d/COPYING diff --git a/src/ifcp6/COPYING.LESSER b/src/ifc4d/COPYING.LESSER similarity index 100% rename from src/ifcp6/COPYING.LESSER rename to src/ifc4d/COPYING.LESSER diff --git a/src/ifc4d/README.md b/src/ifc4d/README.md new file mode 100644 index 0000000000..5fa0d61392 --- /dev/null +++ b/src/ifc4d/README.md @@ -0,0 +1,6 @@ +# ifc4d + +Ifc4D contains a series of utilities for converting to and from various 4D software. Currently supported: + + - Microsoft Project to IFC + - Oracle Primavera 6 (P6) to IFC diff --git a/src/ifcp6/ifcp6/msp2ifc.py b/src/ifc4d/ifc4d/msp2ifc.py similarity index 100% rename from src/ifcp6/ifcp6/msp2ifc.py rename to src/ifc4d/ifc4d/msp2ifc.py diff --git a/src/ifcp6/ifcp6/p62ifc.py b/src/ifc4d/ifc4d/p62ifc.py similarity index 100% rename from src/ifcp6/ifcp6/p62ifc.py rename to src/ifc4d/ifc4d/p62ifc.py diff --git a/src/ifcclash/bootstrap.py b/src/ifcclash/bootstrap.py index 8ad42c5195..15ec2f242a 100644 --- a/src/ifcclash/bootstrap.py +++ b/src/ifcclash/bootstrap.py @@ -1 +1,21 @@ + +# IfcClash - IFC-based clash detection. +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcClash. +# +# IfcClash is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcClash 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcClash. If not, see . + import ifcclash.__main__ + diff --git a/src/ifcclash/ifcclash/__main__.py b/src/ifcclash/ifcclash/__main__.py index 047eabd822..bc81131a53 100644 --- a/src/ifcclash/ifcclash/__main__.py +++ b/src/ifcclash/ifcclash/__main__.py @@ -1,4 +1,23 @@ #!/usr/bin/env python3 + +# IfcClash - IFC-based clash detection. +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcClash. +# +# IfcClash is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcClash 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcClash. If not, see . + import sys import json import logging diff --git a/src/ifcclash/ifcclash/collider.py b/src/ifcclash/ifcclash/collider.py index b04dc3a9f7..472fb9416d 100644 --- a/src/ifcclash/ifcclash/collider.py +++ b/src/ifcclash/ifcclash/collider.py @@ -1,3 +1,22 @@ + +# IfcClash - IFC-based clash detection. +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcClash. +# +# IfcClash is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcClash 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcClash. If not, see . + import hppfcl import numpy as np import ifcopenshell diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py index 76f22e668c..e1f828d709 100644 --- a/src/ifcclash/ifcclash/ifcclash.py +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -1,5 +1,24 @@ #!/usr/bin/env python3 +# IfcClash - IFC-based clash detection. +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcClash. +# +# IfcClash is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcClash 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcClash. If not, see . + + import numpy as np import json import sys diff --git a/src/ifcclash/make.py b/src/ifcclash/make.py index 1c766da8d6..1e1f26ee70 100644 --- a/src/ifcclash/make.py +++ b/src/ifcclash/make.py @@ -1,7 +1,27 @@ #!/usr/bin/env python3 + +# IfcClash - IFC-based clash detection. +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcClash. +# +# IfcClash is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcClash 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcClash. If not, see . + import os import subprocess cmd = "pyinstaller ./bootstrap.py --name ifcclash --onefile --clean" subprocess.check_output(cmd, shell=True) + diff --git a/src/ifccobie/cobie.py b/src/ifccobie/cobie.py index 41ed46612d..9c42890e02 100755 --- a/src/ifccobie/cobie.py +++ b/src/ifccobie/cobie.py @@ -1,4 +1,23 @@ #!/usr/bin/env python3 + +# IfcCOBie - Extract COBie data from IFC to spreadsheets +# Copyright (C) 2019, 2020, 2021 Dion Moult +# +# This file is part of IfcCOBie. +# +# IfcCOBie is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcCOBie 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcCOBie. If not, see . + # This can be packaged with `pyinstaller --onefile --clean --icon=icon.ico bimtester.py` import os diff --git a/src/ifccobie/get_maintainable_assets.py b/src/ifccobie/get_maintainable_assets.py index 1e71ac50d5..591a080088 100644 --- a/src/ifccobie/get_maintainable_assets.py +++ b/src/ifccobie/get_maintainable_assets.py @@ -1,3 +1,22 @@ + +# IfcCOBie - Extract COBie data from IFC to spreadsheets +# Copyright (C) 2019, 2020, 2021 Dion Moult +# +# This file is part of IfcCOBie. +# +# IfcCOBie is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcCOBie 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcCOBie. If not, see . + import json import ifcopenshell import ifcopenshell.util.selector diff --git a/src/ifccsv/ifccsv.py b/src/ifccsv/ifccsv.py index 0f9d2aa4b8..5106d5c7c2 100755 --- a/src/ifccsv/ifccsv.py +++ b/src/ifccsv/ifccsv.py @@ -1,4 +1,23 @@ #!/usr/bin/env python3 + +# IfcCSV - A utility to interact with IFC data through CSV. +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcCSV. +# +# IfcCSV is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcCSV 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcCSV. If not, see . + # This can be packaged with `pyinstaller --onefile --clean --icon=icon.ico ifccsv.py` import ifcopenshell diff --git a/src/ifcdiff/ifcdiff.py b/src/ifcdiff/ifcdiff.py index d6af516af2..294b32d179 100755 --- a/src/ifcdiff/ifcdiff.py +++ b/src/ifcdiff/ifcdiff.py @@ -1,4 +1,23 @@ #!/usr/bin/env python3 + +# IfcDiff - Compare IFCs +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcDiff. +# +# IfcDiff is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcDiff 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcDiff. If not, see . + # This can be packaged with `pyinstaller --onefile --clean --icon=icon.ico ifcdiff.py` import ifcopenshell diff --git a/src/ifcfm/ifcfm/parser.py b/src/ifcfm/ifcfm/parser.py index fc67f57f37..69a27815dc 100644 --- a/src/ifcfm/ifcfm/parser.py +++ b/src/ifcfm/ifcfm/parser.py @@ -1,3 +1,22 @@ + +# IfcFM - IFC for facility management +# Copyright (C) 2021 Dion Moult +# +# This file is part of IfcFM. +# +# IfcFM is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcFM 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcFM. If not, see . + import datetime import ifcopenshell import ifcopenshell.util.fm diff --git a/src/ifcfm/ifcfm/writer.py b/src/ifcfm/ifcfm/writer.py index 143eac353e..803a6cc9b1 100644 --- a/src/ifcfm/ifcfm/writer.py +++ b/src/ifcfm/ifcfm/writer.py @@ -1,3 +1,22 @@ + +# IfcFM - IFC for facility management +# Copyright (C) 2021 Dion Moult +# +# This file is part of IfcFM. +# +# IfcFM is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcFM 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcFM. If not, see . + import csv try: From fee5d17f61ce9ca0fa1633f525f991a2a86ec334 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 5 Aug 2021 14:02:11 +1000 Subject: [PATCH 117/168] Fix builds to use name "blenderbim" instead of "blender28-bim" which now confuses people since 2.9 is out. --- .github/workflows/ci-blenderbim-matrix.yml | 4 ++-- src/blenderbim/Makefile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-blenderbim-matrix.yml b/.github/workflows/ci-blenderbim-matrix.yml index c586db179a..cca06ce15e 100644 --- a/.github/workflows/ci-blenderbim-matrix.yml +++ b/.github/workflows/ci-blenderbim-matrix.yml @@ -59,8 +59,8 @@ jobs: uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: src/blenderbim_${{ matrix.config.short_name }}_${{ matrix.pyver }}/dist/blender28-bim-${{steps.date.outputs.date}}-${{ matrix.pyver }}-${{ matrix.config.short_name }}.zip - asset_name: blender28-bim-${{steps.date.outputs.date}}-${{ matrix.pyver }}-${{ matrix.config.short_name }}.zip + file: src/blenderbim_${{ matrix.config.short_name }}_${{ matrix.pyver }}/dist/blenderbim-${{steps.date.outputs.date}}-${{ matrix.pyver }}-${{ matrix.config.short_name }}.zip + asset_name: blenderbim-${{steps.date.outputs.date}}-${{ matrix.pyver }}-${{ matrix.config.short_name }}.zip tag: "blenderbim-${{steps.date.outputs.date}}" overwrite: true body: "Daily developer testing build blenderbim-${{steps.date.outputs.date}}" diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile index 47f491b142..5e9ee0a24c 100644 --- a/src/blenderbim/Makefile +++ b/src/blenderbim/Makefile @@ -404,7 +404,7 @@ endif rm -rf dist/working cd dist/blenderbim && sed -i "s/999999/$(VERSION)/" __init__.py - cd dist && zip -r blender28-bim-$(VERSION)-$(PYVERSION)-$(PLATFORM).zip ./* + cd dist && zip -r blenderbim-$(VERSION)-$(PYVERSION)-$(PLATFORM).zip ./* rm -rf dist/blenderbim .PHONY: clean From 0ee881fb32282e5febd1f6e6823541ad0f5ce9e4 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 5 Aug 2021 21:14:18 +1000 Subject: [PATCH 118/168] You can now toggle whether decomposed elements are parented in blender when editing, so voids/fills etc move with you. --- .../blenderbim/bim/module/model/workspace.py | 7 +++ .../blenderbim/bim/module/root/ui.py | 2 +- .../blenderbim/bim/module/void/__init__.py | 1 + .../blenderbim/bim/module/void/operator.py | 51 +++++++++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index ec391f669d..c08fec8ebe 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -28,6 +28,7 @@ class BimTool(WorkSpaceTool): ("bim.hotkey", {"type": "V", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_V")]}), ("bim.hotkey", {"type": "O", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_O")]}), ("bim.hotkey", {"type": "O", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_O")]}), + ("bim.hotkey", {"type": "D", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_D")]}), ) def draw_settings(context, layout, tool): @@ -88,6 +89,9 @@ class BimTool(WorkSpaceTool): row = layout.row(align=True) row.label(text="", icon="EVENT_ALT") row.label(text="Opening", icon="EVENT_O") + row = layout.row(align=True) + row.label(text="", icon="EVENT_ALT") + row.label(text="Decomposition", icon="EVENT_D") class Hotkey(bpy.types.Operator): @@ -132,5 +136,8 @@ class Hotkey(bpy.types.Operator): elif self.props.ifc_class == "IfcSlabType": bpy.ops.bim.add_slab_opening() + def hotkey_A_D(self): + bpy.ops.bim.toggle_decomposition_parenting() + def hotkey_A_O(self): bpy.ops.bim.toggle_opening_visibility() diff --git a/src/blenderbim/blenderbim/bim/module/root/ui.py b/src/blenderbim/blenderbim/bim/module/root/ui.py index 1b8cb640c1..bd4aeb212a 100644 --- a/src/blenderbim/blenderbim/bim/module/root/ui.py +++ b/src/blenderbim/blenderbim/bim/module/root/ui.py @@ -29,7 +29,7 @@ class BIM_PT_class(Panel): if props.is_reassigning_class: row = self.layout.row(align=True) row.operator("bim.reassign_class", icon="CHECKMARK") - row.operator("bim.disable_reassign_class", icon="X", text="") + row.operator("bim.disable_reassign_class", icon="CANCEL", text="") self.draw_class_dropdowns(context) else: data = Data.products[props.ifc_definition_id] diff --git a/src/blenderbim/blenderbim/bim/module/void/__init__.py b/src/blenderbim/blenderbim/bim/module/void/__init__.py index a65a04ee84..f5b5a750d8 100644 --- a/src/blenderbim/blenderbim/bim/module/void/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/void/__init__.py @@ -7,6 +7,7 @@ classes = ( operator.AddFilling, operator.RemoveFilling, operator.ToggleOpeningVisibility, + operator.ToggleDecompositionParenting, prop.VoidProperties, ui.BIM_PT_voids, ) diff --git a/src/blenderbim/blenderbim/bim/module/void/operator.py b/src/blenderbim/blenderbim/bim/module/void/operator.py index 25a4b030ee..d859a87601 100644 --- a/src/blenderbim/blenderbim/bim/module/void/operator.py +++ b/src/blenderbim/blenderbim/bim/module/void/operator.py @@ -142,3 +142,54 @@ class ToggleOpeningVisibility(bpy.types.Operator): for collection in [c for c in project.children if "IfcOpeningElements" in c.name]: collection.hide_viewport = not collection.hide_viewport return {"FINISHED"} + + +class ToggleDecompositionParenting(bpy.types.Operator): + bl_idname = "bim.toggle_decomposition_parenting" + bl_label = "Toggle Decomposition Parenting" + bl_options = {"REGISTER", "UNDO"} + obj: bpy.props.StringProperty() + + def execute(self, context): + obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object + self.file = IfcStore.get_file() + is_parenting = None + + self.decompositions = {} + self.load_decompositions(obj) + + for parent, children in self.decompositions.items(): + bpy.ops.bim.dynamically_void_product(obj=parent.name) + for child in children: + bpy.ops.bim.dynamically_void_product(obj=child.name) + if is_parenting is None: + is_parenting = not bool(child.parent) + + if is_parenting: + child.parent = parent + child.matrix_parent_inverse = parent.matrix_world.inverted() + else: + parent_matrix_world = child.matrix_world.copy() + child.parent = None + child.matrix_world = parent_matrix_world + + return {"FINISHED"} + + def load_decompositions(self, parent_obj): + element = self.file.by_id(parent_obj.BIMObjectProperties.ifc_definition_id) + for rel in self.file.get_inverse(element): + if not (rel.is_a("IfcRelDecomposes") or rel.is_a("IfcRelFillsElement")): + continue + if rel[4] != element: + continue + if isinstance(rel[5], tuple): + for related_object in rel[5]: + self.add_decomposition(parent_obj, related_object) + else: + self.add_decomposition(parent_obj, rel[5]) + + def add_decomposition(self, parent_obj, child_element): + child_obj = IfcStore.get_element(child_element.id()) + if child_obj: + self.decompositions.setdefault(parent_obj, []).append(child_obj) + self.load_decompositions(child_obj) From 47440edb8b011d79c793c7975dad61e8b999400b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 10:26:18 +1000 Subject: [PATCH 119/168] Fix bug where undoing broke the IFC link for child objects --- src/blenderbim/blenderbim/bim/ifc.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/ifc.py b/src/blenderbim/blenderbim/bim/ifc.py index 6390ac630f..c83dc0e613 100644 --- a/src/blenderbim/blenderbim/bim/ifc.py +++ b/src/blenderbim/blenderbim/bim/ifc.py @@ -79,15 +79,18 @@ class IfcStore: in a regular Python list, there is the likely probability that the object will be invalidated when undo or redo occurs. Object invalidation seems to only occur for selected objects either pre/post undo/redo event, including - selected objects for consecutive undo/redos. + selected objects for consecutive undo/redos, and all children. So if I first select o1, then o2, then o3, then press undo, o3 will be invalidated. If instead I press undo twice, o3 and o2 will be invalidated. """ if bpy.context.active_object: objects = set([o.name for o in bpy.context.selected_objects + [bpy.context.active_object]]) + objects.update([o.name for o in bpy.context.active_object.children]) else: objects = set([o.name for o in bpy.context.selected_objects]) + for obj in bpy.context.selected_objects: + objects.update([o.name for o in obj.children]) IfcStore.undo_redo_stack_objects |= objects @staticmethod From 3b5bc531cb14c3a5ae99934c90e1c61c8290c5b6 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 11:43:57 +1000 Subject: [PATCH 120/168] Fix bug where FM types for COBie were not selected properly --- src/ifcopenshell-python/ifcopenshell/util/fm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/fm.py b/src/ifcopenshell-python/ifcopenshell/util/fm.py index b0ac0cba43..01fa8deb0d 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/fm.py +++ b/src/ifcopenshell-python/ifcopenshell/util/fm.py @@ -78,7 +78,7 @@ def get_cobie_types(ifc_file): elements = [] for ifc_class in cobie_type_classes: try: - elements += self.file.by_type(ifc_class) + elements += ifc_file.by_type(ifc_class) except: pass return elements @@ -88,7 +88,7 @@ def get_cobie_components(ifc_file): elements = [] for ifc_class in cobie_component_classes: try: - elements += self.file.by_type(ifc_class) + elements += ifc_file.by_type(ifc_class) except: pass return elements From 7d087d29194b2f0771aa2eb50c9075557928884a Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 12:38:18 +1000 Subject: [PATCH 121/168] You can now view all assigned project units --- .../blenderbim/bim/module/model/workspace.py | 2 + .../blenderbim/bim/module/sequence/ui.py | 2 +- .../blenderbim/bim/module/unit/__init__.py | 11 ++-- .../blenderbim/bim/module/unit/operator.py | 45 ++++++++++++++++ .../blenderbim/bim/module/unit/prop.py | 26 ++++++++++ .../blenderbim/bim/module/unit/ui.py | 51 +++++++++++++++++++ .../ifcopenshell/api/unit/data.py | 35 +++++++++++-- 7 files changed, 165 insertions(+), 7 deletions(-) create mode 100644 src/blenderbim/blenderbim/bim/module/unit/prop.py diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index c08fec8ebe..0d449baefe 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -86,6 +86,8 @@ class BimTool(WorkSpaceTool): row.label(text="Align Interior", icon="EVENT_V") row = layout.row(align=True) + row = layout.row(align=True) + row.label(text="Mode") row = layout.row(align=True) row.label(text="", icon="EVENT_ALT") row.label(text="Opening", icon="EVENT_O") diff --git a/src/blenderbim/blenderbim/bim/module/sequence/ui.py b/src/blenderbim/blenderbim/bim/module/sequence/ui.py index 8a0c94da3f..7c6148731c 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/ui.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/ui.py @@ -18,7 +18,7 @@ class BIM_PT_work_plans(Panel): @classmethod def poll(cls, context): file = IfcStore.get_file() - return file and hasattr(file, "schema") and file.schema != "IFC2X3" + return file and file.schema != "IFC2X3" def draw(self, context): if not Data.is_loaded: diff --git a/src/blenderbim/blenderbim/bim/module/unit/__init__.py b/src/blenderbim/blenderbim/bim/module/unit/__init__.py index 87a28250a4..af935164c7 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/unit/__init__.py @@ -1,14 +1,19 @@ import bpy -from . import ui, operator +from . import ui, prop, operator classes = ( operator.AssignUnit, + operator.LoadUnits, + prop.Unit, + prop.BIMUnitProperties, + ui.BIM_PT_units, + ui.BIM_UL_units, ) def register(): - pass + bpy.types.Scene.BIMUnitProperties = bpy.props.PointerProperty(type=prop.BIMUnitProperties) def unregister(): - pass + del bpy.types.Scene.BIMUnitProperties diff --git a/src/blenderbim/blenderbim/bim/module/unit/operator.py b/src/blenderbim/blenderbim/bim/module/unit/operator.py index 76afebedc2..dd31ac289d 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/operator.py +++ b/src/blenderbim/blenderbim/bim/module/unit/operator.py @@ -43,3 +43,48 @@ class AssignUnit(bpy.types.Operator): else: data["raw"] = "FEET" return units + + +class LoadUnits(bpy.types.Operator): + bl_idname = "bim.load_units" + bl_label = "Load Units" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + props = context.scene.BIMUnitProperties + while len(props.units) > 0: + props.units.remove(0) + + for ifc_definition_id in Data.unit_assignment: + unit = Data.units[ifc_definition_id] + name = unit.get("Name", "") + + if unit["type"] == "IfcMonetaryUnit": + name = unit["Currency"] + + if unit["type"] == "IfcSIUnit" and unit["Prefix"]: + if "_" in name: + name_components = name.split("_") + name = f"{name_components[0]} {unit['Prefix']}{name_components[1]}" + else: + name = f"{unit['Prefix']}{name}" + + icon = "MOD_MESHDEFORM" + if unit["type"] == "IfcSIUnit": + icon = "SNAP_GRID" + elif unit["type"] == "IfcMonetaryUnit": + icon = "COPY_ID" + + unit_type = unit.get("UserDefinedType", None) + if not unit_type: + unit_type = unit.get("UnitType", None) + + new = props.units.add() + new.ifc_definition_id = ifc_definition_id + new.name = name + new.unit_type = unit_type + new.icon = icon + + props.is_editing = True + # bpy.ops.bim.disable_editing_unit() + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/unit/prop.py b/src/blenderbim/blenderbim/bim/module/unit/prop.py new file mode 100644 index 0000000000..df960f47aa --- /dev/null +++ b/src/blenderbim/blenderbim/bim/module/unit/prop.py @@ -0,0 +1,26 @@ +import bpy +from blenderbim.bim.prop import StrProperty, Attribute +from bpy.types import PropertyGroup +from bpy.props import ( + PointerProperty, + StringProperty, + EnumProperty, + BoolProperty, + IntProperty, + FloatProperty, + FloatVectorProperty, + CollectionProperty, +) + + +class Unit(PropertyGroup): + name: StringProperty(name="Name") + unit_type: StringProperty(name="Unit Type") + icon: StringProperty(name="Icon") + ifc_definition_id: IntProperty(name="IFC Definition ID") + + +class BIMUnitProperties(PropertyGroup): + is_editing: BoolProperty(name="Is Editing") + units: CollectionProperty(name="Units", type=Unit) + active_unit_index: IntProperty(name="Active Unit Index") diff --git a/src/blenderbim/blenderbim/bim/module/unit/ui.py b/src/blenderbim/blenderbim/bim/module/unit/ui.py index e69de29bb2..943f20a08d 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/ui.py +++ b/src/blenderbim/blenderbim/bim/module/unit/ui.py @@ -0,0 +1,51 @@ +import blenderbim.bim.helper +from bpy.types import Panel, UIList +from blenderbim.bim.ifc import IfcStore +from ifcopenshell.api.unit.data import Data + + +class BIM_PT_units(Panel): + bl_label = "IFC Units" + bl_idname = "BIM_PT_units" + bl_options = {"DEFAULT_CLOSED"} + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "scene" + + @classmethod + def poll(cls, context): + file = IfcStore.get_file() + return file + + def draw(self, context): + self.file = IfcStore.get_file() + if not Data.is_loaded: + Data.load(self.file) + self.props = context.scene.BIMUnitProperties + + row = self.layout.row(align=True) + row.label(text="{} Units Found".format(len(Data.unit_assignment)), icon="SNAP_GRID") + if self.props.is_editing: + row.operator("bim.add_group", text="", icon="ADD") + row.operator("bim.disable_group_editing_ui", text="", icon="CANCEL") + else: + row.operator("bim.load_units", text="", icon="GREASEPENCIL") + + if self.props.is_editing: + self.layout.template_list( + "BIM_UL_units", + "", + self.props, + "units", + self.props, + "active_unit_index", + ) + + +class BIM_UL_units(UIList): + def draw_item(self, context, layout, data, item, icon, active_data, active_propname): + props = context.scene.BIMUnitProperties + if item: + row = layout.row(align=True) + row.label(text=item.unit_type or "No Type", icon=item.icon) + row.label(text=item.name or "Unnamed") diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/data.py b/src/ifcopenshell-python/ifcopenshell/api/unit/data.py index 8b71dad1b4..e9959597f1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/data.py @@ -1,3 +1,7 @@ +import ifcopenshell +import ifcopenshell.util.unit + + class Data: is_loaded = False units = {} @@ -5,16 +9,41 @@ class Data: @classmethod def purge(cls): cls.is_loaded = False + cls.unit_assignment = [] cls.units = {} @classmethod def load(cls, file): if not file: return - unit_assignment = file.by_type("IfcUnitAssignment") + cls.file = file + unit_assignment = cls.file.by_type("IfcUnitAssignment") if not unit_assignment: return for unit in unit_assignment[0].Units: - pass - # TODO: implement along with UI + cls.unit_assignment.append(unit.id()) + cls.load_unit(unit) cls.is_loaded = True + + @classmethod + def load_unit(cls, unit): + if unit.is_a("IfcDerivedUnit"): + data = unit.get_info() + data["Elements"] = [{"Unit": e.Unit.id(), "Exponent": e.Exponent} for e in unit.Elements] + for element in unit.Elements: + cls.load_unit(element.Unit) + cls.units[unit.id()] = data + elif unit.is_a("IfcNamedUnit"): + data = unit.get_info() + if unit.is_a("IfcSIUnit"): + data["Dimensions"] = ifcopenshell.util.unit.get_si_dimensions(unit.Name) + else: + data["Dimensions"] = unit.Dimensions.get_info() + if unit.is_a("IfcConversionBasedUnit"): + conversion_factor = unit.ConversionFactor.get_info() + cls.load_unit(unit.ConversionFactor.UnitComponent) + conversion_factor["UnitComponent"] = unit.ConversionFactor.UnitComponent.id() + data["ConversionFactor"] = conversion_factor + cls.units[unit.id()] = data + elif unit.is_a("IfcMonetaryUnit"): + cls.units[unit.id()] = unit.get_info() From 4ccadc4f3692b4f31859deb547fb5adeaf4be92b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 12:38:34 +1000 Subject: [PATCH 122/168] New unit utility to auto detect SI unit dimensional exponents --- .../ifcopenshell/util/unit.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py index c29dafb44a..d9ee421c56 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/unit.py +++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py @@ -52,6 +52,40 @@ unit_names = [ "WEBER", ] +si_dimensions = { + "METRE": (1, 0, 0, 0, 0, 0, 0), + "SQUARE_METRE": (2, 0, 0, 0, 0, 0, 0), + "CUBIC_METRE": (3, 0, 0, 0, 0, 0, 0), + "GRAM": (0, 1, 0, 0, 0, 0, 0), + "SECOND": (0, 0, 1, 0, 0, 0, 0), + "AMPERE": (0, 0, 0, 1, 0, 0, 0), + "KELVIN": (0, 0, 0, 0, 1, 0, 0), + "MOLE": (0, 0, 0, 0, 0, 1, 0), + "CANDELA": (0, 0, 0, 0, 0, 0, 1), + "RADIAN": (0, 0, 0, 0, 0, 0, 0), + "STERADIAN": (0, 0, 0, 0, 0, 0, 0), + "HERTZ": (0, 0, -1, 0, 0, 0, 0), + "NEWTON": (1, 1, -2, 0, 0, 0, 0), + "PASCAL": (-1, 1, -2, 0, 0, 0, 0), + "JOULE": (2, 1, -2, 0, 0, 0, 0), + "WATT": (2, 1, -3, 0, 0, 0, 0), + "COULOMB": (0, 0, 1, 1, 0, 0, 0), + "VOLT": (2, 1, -3, -1, 0, 0, 0), + "FARAD": (-2, -1, 4, 2, 0, 0, 0), + "OHM": (2, 1, -3, -2, 0, 0, 0), + "SIEMENS": (-2, -1, 3, 2, 0, 0, 0), + "WEBER": (2, 1, -2, -1, 0, 0, 0), + "TESLA": (0, 1, -2, -1, 0, 0, 0), + "HENRY": (2, 1, -2, -2, 0, 0, 0), + "DEGREE_CELSIUS": (0, 0, 0, 0, 1, 0, 0), + "LUMEN": (0, 0, 0, 0, 0, 0, 1), + "LUX": (-2, 0, 0, 0, 0, 0, 1), + "BECQUEREL": (0, 0, -1, 0, 0, 0, 0), + "GRAY": (2, 0, -2, 0, 0, 0, 0), + "SIEVERT": (2, 0, -2, 0, 0, 0, 0), + "OTHERWISE": (0, 0, 0, 0, 0, 0, 0) +} + si_conversions = { "inch": 0.0254, "foot": 0.3048, @@ -110,6 +144,10 @@ def get_unit_name(text): return name +def get_si_dimensions(name): + return si_dimensions.get(name, si_dimensions["OTHERWISE"]) + + def convert(value, from_prefix, from_unit, to_prefix, to_unit): """Converts between length, area, and volume units From 326e7e591f4ea01f3303e5070b41437da3d68473 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 14:11:08 +1000 Subject: [PATCH 123/168] You can now delete unit assignments --- .../blenderbim/bim/module/unit/__init__.py | 2 ++ .../blenderbim/bim/module/unit/operator.py | 28 +++++++++++++++++++ .../blenderbim/bim/module/unit/ui.py | 5 ++-- .../ifcopenshell/api/unit/data.py | 2 ++ .../ifcopenshell/api/unit/remove_unit.py | 18 ++++++++++++ 5 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 src/ifcopenshell-python/ifcopenshell/api/unit/remove_unit.py diff --git a/src/blenderbim/blenderbim/bim/module/unit/__init__.py b/src/blenderbim/blenderbim/bim/module/unit/__init__.py index af935164c7..03a4a4e873 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/unit/__init__.py @@ -4,6 +4,8 @@ from . import ui, prop, operator classes = ( operator.AssignUnit, operator.LoadUnits, + operator.DisableUnitEditingUI, + operator.RemoveUnit, prop.Unit, prop.BIMUnitProperties, ui.BIM_PT_units, diff --git a/src/blenderbim/blenderbim/bim/module/unit/operator.py b/src/blenderbim/blenderbim/bim/module/unit/operator.py index dd31ac289d..baae5ffab9 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/operator.py +++ b/src/blenderbim/blenderbim/bim/module/unit/operator.py @@ -88,3 +88,31 @@ class LoadUnits(bpy.types.Operator): props.is_editing = True # bpy.ops.bim.disable_editing_unit() return {"FINISHED"} + + +class DisableUnitEditingUI(bpy.types.Operator): + bl_idname = "bim.disable_unit_editing_ui" + bl_label = "Disable Unit Editing UI" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + context.scene.BIMUnitProperties.is_editing = False + return {"FINISHED"} + + +class RemoveUnit(bpy.types.Operator): + bl_idname = "bim.remove_unit" + bl_label = "Remove Unit" + bl_options = {"REGISTER", "UNDO"} + unit: bpy.props.IntProperty() + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + props = context.scene.BIMUnitProperties + self.file = IfcStore.get_file() + ifcopenshell.api.run("unit.remove_unit", self.file, **{"unit": self.file.by_id(self.unit)}) + Data.load(self.file) + bpy.ops.bim.load_units() + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/unit/ui.py b/src/blenderbim/blenderbim/bim/module/unit/ui.py index 943f20a08d..8e8ec3a3da 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/ui.py +++ b/src/blenderbim/blenderbim/bim/module/unit/ui.py @@ -26,8 +26,8 @@ class BIM_PT_units(Panel): row = self.layout.row(align=True) row.label(text="{} Units Found".format(len(Data.unit_assignment)), icon="SNAP_GRID") if self.props.is_editing: - row.operator("bim.add_group", text="", icon="ADD") - row.operator("bim.disable_group_editing_ui", text="", icon="CANCEL") + # row.operator("bim.add_unit", text="", icon="ADD") + row.operator("bim.disable_unit_editing_ui", text="", icon="CANCEL") else: row.operator("bim.load_units", text="", icon="GREASEPENCIL") @@ -49,3 +49,4 @@ class BIM_UL_units(UIList): row = layout.row(align=True) row.label(text=item.unit_type or "No Type", icon=item.icon) row.label(text=item.name or "Unnamed") + row.operator("bim.remove_unit", text="", icon="X").unit = item.ifc_definition_id diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/data.py b/src/ifcopenshell-python/ifcopenshell/api/unit/data.py index e9959597f1..893b302cff 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/data.py @@ -17,6 +17,8 @@ class Data: if not file: return cls.file = file + cls.unit_assignment = [] + cls.units = {} unit_assignment = cls.file.by_type("IfcUnitAssignment") if not unit_assignment: return diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/remove_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/remove_unit.py new file mode 100644 index 0000000000..949bf919e5 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/remove_unit.py @@ -0,0 +1,18 @@ +import ifcopenshell.util.element + + +class Usecase(): + def __init__(self, file, **settings): + self.file = file + self.settings = {"unit": None} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + unit_assignment = self.file.by_type("IfcUnitAssignment")[0] + units = list(unit_assignment.Units) + units.remove(self.settings["unit"]) + if not units: + return + unit_assignment.Units = units + ifcopenshell.util.element.remove_deep(self.file, self.settings["unit"]) From 05ef6542ef057fc2b9426088733332124e115d87 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 15:48:07 +1000 Subject: [PATCH 124/168] New utility to derive the unit of a property or quantity. --- .../ifcopenshell/util/unit.py | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py index d9ee421c56..a5bffc2b53 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/unit.py +++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py @@ -83,7 +83,7 @@ si_dimensions = { "BECQUEREL": (0, 0, -1, 0, 0, 0, 0), "GRAY": (2, 0, -2, 0, 0, 0, 0), "SIEVERT": (2, 0, -2, 0, 0, 0, 0), - "OTHERWISE": (0, 0, 0, 0, 0, 0, 0) + "OTHERWISE": (0, 0, 0, 0, 0, 0, 0), } si_conversions = { @@ -139,8 +139,9 @@ def get_prefix_multiplier(text): def get_unit_name(text): + text = text.upper().replace("METER", "METRE") for name in unit_names: - if name in text.upper().replace("METER", "METRE"): + if name in text: return name @@ -148,6 +149,26 @@ def get_si_dimensions(name): return si_dimensions.get(name, si_dimensions["OTHERWISE"]) +def get_property_unit(prop, ifc_file): + unit = getattr(prop, "Unit", None) + if unit: + return unit + unit_assignment = ifc_file.by_type("IfcUnitAssignment") + if not unit_assignment: + return + entity = prop.wrapped_data.declaration().as_entity() + if prop.is_a("IfcPhysicalSimpleQuantity"): + measure_type = entity.attribute_by_index(3).type_of_attribute().declared_type().name() + elif prop.is_a("IfcPropertySingleValue") and prop.NominalValue: + measure_type = prop.NominalValue.is_a() + for text in ("Ifc", "Measure", "Non", "Positive", "Negative"): + measure_type = measure_type.replace(text, "") + measure_type = measure_type.upper() + "UNIT" + units = [u for u in unit_assignment[0].Units if getattr(u, "UnitType", None) == measure_type] + if units: + return units[0] + + def convert(value, from_prefix, from_unit, to_prefix, to_unit): """Converts between length, area, and volume units @@ -193,6 +214,8 @@ Example:: :returns: The scale factor :rtype: float """ + + def calculate_unit_scale(file): units = file.by_type("IfcUnitAssignment")[0] unit_scale = 1 From 62c5efe591c73777963989f01c10f0438b4afef0 Mon Sep 17 00:00:00 2001 From: Prabhat Singh <59395410+TestPrab@users.noreply.github.com> Date: Fri, 6 Aug 2021 11:20:05 +0530 Subject: [PATCH 125/168] Updated Server (#1630) --- src/bcfserver/README.md | 37 +++++------ src/bcfserver/app.py | 4 -- src/bcfserver/bcf/routes.py | 51 +++++++++++++++ .../app.py => bcf/templates/base.html} | 0 src/bcfserver/requirements.txt | 33 +++------- src/bcfserver/{website/__init__.py => run.py} | 12 +++- src/bcfserver/website/forms.py | 2 +- src/bcfserver/website/models.py | 2 +- src/bcfserver/website/routes.py | 65 +++++++++++-------- src/bcfserver/website/templates/base.html | 18 +++-- src/bcfserver/website/templates/index.html | 17 ++++- src/bcfserver/website/templates/login.html | 2 +- src/bcfserver/website/templates/ologin.html | 2 +- src/bcfserver/website/templates/register.html | 4 +- 14 files changed, 157 insertions(+), 92 deletions(-) delete mode 100644 src/bcfserver/app.py create mode 100644 src/bcfserver/bcf/routes.py rename src/bcfserver/{website/app.py => bcf/templates/base.html} (100%) rename src/bcfserver/{website/__init__.py => run.py} (60%) diff --git a/src/bcfserver/README.md b/src/bcfserver/README.md index 52919237cb..b34b68c9a3 100644 --- a/src/bcfserver/README.md +++ b/src/bcfserver/README.md @@ -1,35 +1,30 @@ # Server-Test -## Set up the server by installing the dependencies +1. Cd to the server directory i.e cd `IfcOpenShell\src\bcfserver` -### run `pip install -r requirements.txt` to install the dependencies +2. Set up the server by installing the dependencies -#### setup the database by running `db.create_all()` in python shell by importing db from website +3. Run `pip install -r requirements.txt` to install the dependencies -### run `set FLASK_APP=app.py` to set the environment variable +4. In Python Shell, do the following -### run `flask run` to start the server + - from run import db + - db.create_all() to setup the database table -### Go to [http://localhost:5000](http://localhost:5000) to see the server +5. Run `set FLASK_APP=run.py` +6. Run `flask run` to start the server +7. Go to [http://localhost:5000](http://localhost:5000) to see the server # Register the user -#### Go to [http://localhost:5000/register](http://localhost:5000/register) to register the user - -# Create the client - -#### For `grant type` enter `authorization_code` - -#### For `response_type` enter `code secret` - -### Enter the scope and create the client +1. Go to http://localhost:5000/register to register the user +2. Create the client +3. For grant type enter authorization_code +4. For response_type enter code secret +5. Enter the scope and create the client ### You will be redirected to the page with the details of your client id and secret -### Use the bcf/v3/api.py to get the access token +# Foundation API -#### For authentication endpoint use `http://localhost:5000/oauth/authorize` - -### For token endpoint use `http://localhost:5000/oauth/token` - -### Base URL will be `http://localhost:5000/` +- Set the Base URL will be `http://127.0.0.1:5000/` diff --git a/src/bcfserver/app.py b/src/bcfserver/app.py deleted file mode 100644 index 1af101b3ae..0000000000 --- a/src/bcfserver/app.py +++ /dev/null @@ -1,4 +0,0 @@ -from website import app - -if __name__ == "__main__": - app.run(debug=True) diff --git a/src/bcfserver/bcf/routes.py b/src/bcfserver/bcf/routes.py new file mode 100644 index 0000000000..9e3230d8af --- /dev/null +++ b/src/bcfserver/bcf/routes.py @@ -0,0 +1,51 @@ +from flask import jsonify, url_for, redirect, render_template, request, session, flash +from flask_login import login_user, logout_user, login_required, current_user +from flask.blueprints import Blueprint +from website.models import User, OAuth2AuthorizationCode, OAuth2Token, OAuth2Client +from run import app, db +import json + +bcf = Blueprint("bcf", __name__, template_folder="templates", url_prefix="/bcf/3.0") + + +@bcf.route("/projects") +def projects(): + Headers = str.split(request.headers["Authorization"]) + token = Headers[1] + access_token = OAuth2Token.query.filter_by(access_token=token).first() + print(access_token) + if access_token: + Body = { + "project_id": "F445F4F2-4D02-4B2A-B612-5E456BEF9137", + "name": "Example project 1", + "authorization": {"project_actions": ["createTopic", "createDocument"]}, + }, { + "project_id": "A233FBB2-3A3B-EFF4-C123-DE22ABC8414", + "name": "Example project 2", + "authorization": {"project_actions": []}, + } + response = app.response_class( + response=json.dumps(Body), + status=200, + mimetype="application/json", + ) + return response + else: + message = {"error": "User not recognized"} + response = app.response_class( + response=jsonify(message), + status=200, + mimetype="application/json", + ) + return response + + +@bcf.route("/") +@login_required +def bcf_3(): + return "

BCF HOMPAGE

" + + +@bcf.route("/projects/") +def project_details(project_id): + return "Project details" diff --git a/src/bcfserver/website/app.py b/src/bcfserver/bcf/templates/base.html similarity index 100% rename from src/bcfserver/website/app.py rename to src/bcfserver/bcf/templates/base.html diff --git a/src/bcfserver/requirements.txt b/src/bcfserver/requirements.txt index bc8e9910e0..c40a961538 100644 --- a/src/bcfserver/requirements.txt +++ b/src/bcfserver/requirements.txt @@ -1,25 +1,8 @@ -appdirs -bcrypt -black -cffi -click -colorama -dnspython -email-validator -Flask -Flask-Login -Flask-WTF1 -greenlet -idnatsdangerous -Jinja -MarkupSafe -mypy-extensions -pathspec -pycparserregex -six -SQLAlchemy -tomli -Werkzeug -WTForms -authlib -Flask-RESTful \ No newline at end of file +Authlib==0.15.4 +email-validator==1.1.3 +Flask==2.0.1 +Flask-Login==0.5.0 +Flask-SQLAlchemy==2.5.1 +Flask-WTF==0.15.1 +Flask-Bcrypt==0.7.1 +bcrypt==3.2.0 diff --git a/src/bcfserver/website/__init__.py b/src/bcfserver/run.py similarity index 60% rename from src/bcfserver/website/__init__.py rename to src/bcfserver/run.py index 22e14092e7..3e13150778 100644 --- a/src/bcfserver/website/__init__.py +++ b/src/bcfserver/run.py @@ -3,15 +3,23 @@ from flask_sqlalchemy import SQLAlchemy from flask_login import LoginManager from flask_bcrypt import Bcrypt + app = Flask(__name__) db = SQLAlchemy(app) login_manager = LoginManager(app) bcrypt = Bcrypt(app) app.config["SECRET_KEY"] = "f613729206685405cde0e388" app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///sqlite.db" -login_manager.login_view = "login_page" +login_manager.login_view = "website_obj.login_page" login_manager.login_message_category = "info" +from website.routes import website_obj +from bcf.routes import bcf -from website import models, oauth2, routes +app.register_blueprint(website_obj) +app.register_blueprint(bcf) + + +if __name__ == "__main__": + app.run(host="0.0.0.0", port=5000, debug=True) diff --git a/src/bcfserver/website/forms.py b/src/bcfserver/website/forms.py index a7e94e0dfa..d326108a6e 100644 --- a/src/bcfserver/website/forms.py +++ b/src/bcfserver/website/forms.py @@ -2,7 +2,7 @@ from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, BooleanField, SubmitField from wtforms.validators import DataRequired, Length, Email, Regexp, EqualTo from wtforms import ValidationError -from website.models import User +from .models import User class RegisterForm(FlaskForm): diff --git a/src/bcfserver/website/models.py b/src/bcfserver/website/models.py index f2845c4d14..4eef828f05 100644 --- a/src/bcfserver/website/models.py +++ b/src/bcfserver/website/models.py @@ -1,4 +1,4 @@ -from website import db, bcrypt, login_manager +from run import db, bcrypt, login_manager import time from authlib.integrations.sqla_oauth2 import ( OAuth2ClientMixin, diff --git a/src/bcfserver/website/routes.py b/src/bcfserver/website/routes.py index 1ebe79ca56..0264b3a894 100644 --- a/src/bcfserver/website/routes.py +++ b/src/bcfserver/website/routes.py @@ -1,28 +1,34 @@ -from os import supports_bytes_environ -from website import app -from flask import render_template, redirect, url_for, flash, request, jsonify -from website.models import User -from website.forms import RegisterForm, LoginForm, OauthForm -from website import db +from flask.blueprints import Blueprint +from flask import render_template, redirect, url_for, flash, request +from werkzeug import datastructures +from .forms import RegisterForm, LoginForm, OauthForm from flask_login import login_user, logout_user, login_required, current_user -from .models import db, User, OAuth2Client, OAuth2AuthorizationCode, OAuth2Token +from .models import User, OAuth2Client, OAuth2AuthorizationCode, OAuth2Token import base64 from werkzeug.security import gen_salt import time import urllib import json +from run import db, app + +website_obj = Blueprint( + "website_obj", + __name__, + template_folder="templates", +) def split_by_crlf(s): return [v for v in s.splitlines() if v] -@app.route("/") +@website_obj.route("/") def homepage(): return render_template("index.html") + # return "homepage" -@app.route("/register", methods=["GET", "POST"]) +@website_obj.route("/register", methods=["GET", "POST"]) def register_page(): form = RegisterForm() if form.validate_on_submit(): @@ -39,7 +45,7 @@ def register_page(): f"Account created successfully! {user_to_create.username}", category="success", ) - return redirect(url_for("homepage")) + return redirect(url_for("website_obj.homepage")) if form.errors != {}: for err_msg in form.errors.values(): flash( @@ -49,7 +55,7 @@ def register_page(): return render_template("register.html", form=form) -@app.route("/createclient", methods=["GET", "POST"]) +@website_obj.route("/createclient", methods=["GET", "POST"]) @login_required def create_client(): grants = [ @@ -93,7 +99,7 @@ def create_client(): return render_template("createclient.html", form=form, grants=grants) -@app.route("/login", methods=["GET", "POST"]) +@website_obj.route("/login", methods=["GET", "POST"]) def login_page(): form = LoginForm() if form.validate_on_submit(): @@ -102,7 +108,7 @@ def login_page(): attempted_password=form.password.data ): login_user(attempted_user) - return redirect(url_for("homepage")) + return redirect(url_for("website_obj.homepage")) else: flash( "Invalid Credentials", @@ -112,27 +118,27 @@ def login_page(): return render_template("login.html", form=form) -@app.route("/logout") +@website_obj.route("/logout") def logoutpage(): logout_user() flash("You have been logged out!", category="info") - return redirect(url_for("homepage")) + return redirect(url_for("website_obj.homepage")) -@app.route("/foundation/1.0/auth") +@website_obj.route("/foundation/1.0/auth") def foundation_auth(): data = { "oauth2_auth_url": "http://127.0.0.1:5000/oauth/authorize", "oauth2_token_url": "http://127.0.0.1:5000/oauth/token", "supported_oauth2_flows": ["authorization_code"], } - response = app.response_class( - response=json.dumps(data), status=200, mimetype="application/json" + response = website_obj.response_class( + data=json.dumps(data), status=200, mimetype="application/json" ) return response -@app.route("/foundation/versions") +@website_obj.route("/foundation/versions") def foundation_versions(): Body = { "versions": [ @@ -155,13 +161,13 @@ def foundation_versions(): }, ] } - response = app.response_class( - response=json.dumps(Body), status=200, mimetype="application/json" + response = website_obj.response_class( + data=json.dumps(Body), status=200, mimetype="application/json" ) return response -@app.route("/outh/login", methods=["GET", "POST"]) +@website_obj.route("/outh/login", methods=["GET", "POST"]) def oauth_login(): form = LoginForm() if form.validate_on_submit(): @@ -179,7 +185,7 @@ def oauth_login(): state = request.args.get("state") return redirect( url_for( - "authorize", + "website_obj.authorize", client_id=client_id, redirect_uri=redirect_uri, state=state, @@ -193,7 +199,7 @@ def oauth_login(): return render_template("ologin.html", form=form) -@app.route("/oauth/authorize", methods=["GET", "POST"]) +@website_obj.route("/oauth/authorize", methods=["GET", "POST"]) def authorize(): client_id = request.args.get("client_id") redirect_uri = request.args.get("redirect_uri") @@ -203,7 +209,7 @@ def authorize(): query = request.query_string return redirect( url_for( - "oauth_login", + "website_obj.oauth_login", client_id=client_id, redirect_uri=redirect_uri, state=state, @@ -246,7 +252,7 @@ def authorize(): return render_template("oauth.html") -@app.route("/oauth/token", methods=["POST"]) +@website_obj.route("/oauth/token", methods=["POST"]) def issue_token(): try: code = request.form["code"] @@ -254,6 +260,7 @@ def issue_token(): decode_header = base64.b64decode(Headers[1]).decode("utf-8") creds = decode_header.split(":") client_id = creds[0] + # print(code, Headers, decode_header, creds, client_id) auth_code = OAuth2AuthorizationCode.query.filter_by(code=code).first() if auth_code: if auth_code.client_id == client_id: @@ -275,11 +282,13 @@ def issue_token(): "access_token": access_token, "refresh_token": refresh_token, "expires_in": expires_in, - "auth_code": auth_code.scope, } response = app.response_class( - response=json.dumps(query), status=200, mimetype="application/json" + response=json.dumps(query), + status=200, + mimetype="application/json", ) + print(query) return response else: flash( diff --git a/src/bcfserver/website/templates/base.html b/src/bcfserver/website/templates/base.html index b55f4839e9..f6a2a2df7c 100644 --- a/src/bcfserver/website/templates/base.html +++ b/src/bcfserver/website/templates/base.html @@ -30,7 +30,7 @@ diff --git a/src/bcfserver/website/templates/ologin.html b/src/bcfserver/website/templates/ologin.html index 672c447b21..708f5498e7 100644 --- a/src/bcfserver/website/templates/ologin.html +++ b/src/bcfserver/website/templates/ologin.html @@ -16,7 +16,7 @@
Do not have an account?
Register diff --git a/src/bcfserver/website/templates/register.html b/src/bcfserver/website/templates/register.html index faf87694c9..f45b0c45f5 100644 --- a/src/bcfserver/website/templates/register.html +++ b/src/bcfserver/website/templates/register.html @@ -16,7 +16,9 @@
Already have an account?
- Login
From 07bf60819a9bd427df48097aa6ebc889d52a8051 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 16:44:47 +1000 Subject: [PATCH 126/168] Minor fix --- src/bcf/README.md | 2 +- src/bcfserver/website/routes.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bcf/README.md b/src/bcf/README.md index e36979a33b..5a7b66c03e 100644 --- a/src/bcf/README.md +++ b/src/bcf/README.md @@ -66,7 +66,7 @@ bcfxml.edit_topic(topic) The `bcfapi` module lets you interact with the BCF-API standard. ```python -from bcf.v3.bcfapi import AuthClient, BcfClient +from bcf.v3.bcfapi import FoundationClient, BcfClient foundation_client = FoundationClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "OPENCDE_BASEURL") auth_methods = foundation_client.get_auth_methods() diff --git a/src/bcfserver/website/routes.py b/src/bcfserver/website/routes.py index 0264b3a894..28f0e63b03 100644 --- a/src/bcfserver/website/routes.py +++ b/src/bcfserver/website/routes.py @@ -132,8 +132,8 @@ def foundation_auth(): "oauth2_token_url": "http://127.0.0.1:5000/oauth/token", "supported_oauth2_flows": ["authorization_code"], } - response = website_obj.response_class( - data=json.dumps(data), status=200, mimetype="application/json" + response = app.response_class( + response=json.dumps(data), status=200, mimetype="application/json" ) return response @@ -161,8 +161,8 @@ def foundation_versions(): }, ] } - response = website_obj.response_class( - data=json.dumps(Body), status=200, mimetype="application/json" + response = app.response_class( + response=json.dumps(Body), status=200, mimetype="application/json" ) return response From e22c68a84272c42cb880b5fe13230365afe9c9ff Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 18:19:41 +1000 Subject: [PATCH 127/168] Units for cost items are now autodetected --- .../blenderbim/bim/module/cost/operator.py | 2 +- .../blenderbim/bim/module/cost/prop.py | 2 +- .../blenderbim/bim/module/cost/ui.py | 4 +- .../ifcopenshell/api/cost/data.py | 8 ++++ .../ifcopenshell/util/unit.py | 37 +++++++++++++++++++ 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/cost/operator.py b/src/blenderbim/blenderbim/bim/module/cost/operator.py index f42a719ea7..fb98628a93 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/operator.py +++ b/src/blenderbim/blenderbim/bim/module/cost/operator.py @@ -420,7 +420,7 @@ class AddCostItemQuantity(bpy.types.Operator): class RemoveCostItemQuantity(bpy.types.Operator): bl_idname = "bim.remove_cost_item_quantity" - bl_label = "Add Cost Item Quantity" + bl_label = "Remove Cost Item Quantity" bl_options = {"REGISTER", "UNDO"} cost_item: bpy.props.IntProperty() physical_quantity: bpy.props.IntProperty() diff --git a/src/blenderbim/blenderbim/bim/module/cost/prop.py b/src/blenderbim/blenderbim/bim/module/cost/prop.py index 16c48c736c..c02660b537 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/prop.py +++ b/src/blenderbim/blenderbim/bim/module/cost/prop.py @@ -84,7 +84,7 @@ class BIMCostProperties(PropertyGroup): cost_schedule_attributes: CollectionProperty(name="Cost Schedule Attributes", type=Attribute) is_editing: StringProperty(name="Is Editing") active_cost_schedule_id: IntProperty(name="Active Cost Schedule Id") - cost_items: CollectionProperty(name="Work Calendar", type=CostItem) + cost_items: CollectionProperty(name="Cost Items", type=CostItem) active_cost_item_id: IntProperty(name="Active Cost Id") cost_item_editing_type: StringProperty(name="Cost Item Editing Type") active_cost_item_index: IntProperty(name="Active Cost Item Index") diff --git a/src/blenderbim/blenderbim/bim/module/cost/ui.py b/src/blenderbim/blenderbim/bim/module/cost/ui.py index 8f47ecd85e..64cdd14fd9 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/ui.py +++ b/src/blenderbim/blenderbim/bim/module/cost/ui.py @@ -165,7 +165,6 @@ class BIM_PT_cost_schedules(Panel): box = self.layout.box() self.draw_editable_cost_value_ui(box, Data.cost_values[self.props.active_cost_item_value_id]) - def draw_readonly_cost_value_ui(self, layout, cost_value_id): cost_value = Data.cost_values[cost_value_id] cost_value_label = "{0:.2f}".format(cost_value["AppliedValue"]) @@ -236,7 +235,6 @@ class BIM_PT_cost_schedules(Panel): row.prop(attribute, "is_null", icon="RADIOBUT_OFF" if attribute.is_null else "RADIOBUT_ON", text="") - class BIM_UL_cost_items(UIList): def draw_item(self, context, layout, data, item, icon, active_data, active_propname): if item: @@ -263,7 +261,7 @@ class BIM_UL_cost_items(UIList): op = row.operator("bim.enable_editing_cost_item_quantities", text="", icon="PROPERTIES") op.cost_item = item.ifc_definition_id - row.label(text="{0:.2f}".format(cost_item["TotalCostQuantity"]) + " (M3)") + row.label(text="{0:.2f}".format(cost_item["TotalCostQuantity"]) + f" ({cost_item['UnitSymbol']})") op = row.operator("bim.enable_editing_cost_item_values", text="", icon="DISC") op.cost_item = item.ifc_definition_id diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/data.py b/src/ifcopenshell-python/ifcopenshell/api/cost/data.py index 9d01cdcbdc..cf59abfff0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/data.py @@ -1,4 +1,5 @@ import ifcopenshell.util.date +import ifcopenshell.util.unit class Data: @@ -63,6 +64,13 @@ class Data: del quantity_data["Unit"] cls.physical_quantities[quantity.id()] = quantity_data data["CostQuantities"].append(quantity.id()) + data["Unit"] = None + data["UnitSymbol"] = "?" + if cost_item.CostQuantities: + quantity = cost_item.CostQuantities[0] + unit = ifcopenshell.util.unit.get_property_unit(quantity, cls.file) + data["Unit"] = unit.id() + data["UnitSymbol"] = ifcopenshell.util.unit.get_unit_symbol(unit) @classmethod def load_cost_item_values(cls, cost_item, data): diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py index a5bffc2b53..fbc4c46b2b 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/unit.py +++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py @@ -52,6 +52,7 @@ unit_names = [ "WEBER", ] + si_dimensions = { "METRE": (1, 0, 0, 0, 0, 0, 0), "SQUARE_METRE": (2, 0, 0, 0, 0, 0, 0), @@ -121,6 +122,33 @@ si_conversions = { "btu": 1055.056, } +prefix_symbols = { + "EXA": "E", + "PETA": "P", + "TERA": "T", + "GIGA": "G", + "MEGA": "M", + "KILO": "k", + "HECTO": "h", + "DECA": "da", + "DECI": "d", + "CENTI": "c", + "MILLI": "m", + "MICRO": "μ", + "NANO": "n", + "PICO": "p", + "FEMTO": "f", + "ATTO": "a", +} + +unit_symbols = { + "CUBIC_METRE": "m3", + "GRAM": "g", + "SECOND": "s", + "SQUARE_METRE": "m2", + "METRE": "m", +} + def get_prefix(text): if text: @@ -169,6 +197,15 @@ def get_property_unit(prop, ifc_file): return units[0] +def get_unit_symbol(unit): + if unit.is_a("IfcSIUnit"): + symbol = "" + symbol += prefix_symbols.get(unit.Prefix, "") + symbol += unit_symbols.get(unit.Name.replace("METER", "METRE"), "?") + return symbol + return "?" + + def convert(value, from_prefix, from_unit, to_prefix, to_unit): """Converts between length, area, and volume units From 00be87ff07af51692b397442df0ef5e85754a1f3 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 6 Aug 2021 22:25:32 +1000 Subject: [PATCH 128/168] Fix bug where wall origin recalculations will shift openings --- src/blenderbim/blenderbim/bim/module/model/wall.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index f5e58c0fc2..c658e46609 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -184,6 +184,8 @@ def recalculate_dumb_wall_origin(wall, new_origin=None): ) ) wall.matrix_world.translation = new_origin + for child in wall.children: + child.matrix_parent_inverse = wall.matrix_world.inverted() class DumbWallSplitter: @@ -259,6 +261,9 @@ class DumbWallFlipper: ).length < 0.001: recalculate_dumb_wall_origin(self.wall, self.wall.matrix_world @ Vector(self.wall.bound_box[7])) self.rotate_wall_180() + bpy.context.view_layer.update() + for child in self.wall.children: + child.matrix_parent_inverse = self.wall.matrix_world.inverted() else: recalculate_dumb_wall_origin(self.wall) From 10011436d01086397ad0121c2542f98d04a1b796 Mon Sep 17 00:00:00 2001 From: LaurensJN Date: Fri, 6 Aug 2021 15:47:47 +0200 Subject: [PATCH 129/168] Copyright statements for ifccityjson. See #1082 --- src/ifccityjson/cityjson2ifc.py | 19 +++++++++++++++++++ src/ifccityjson/geometry.py | 19 +++++++++++++++++++ src/ifccityjson/ifccityjson.py | 19 +++++++++++++++++++ 3 files changed, 57 insertions(+) diff --git a/src/ifccityjson/cityjson2ifc.py b/src/ifccityjson/cityjson2ifc.py index 2a53cb1833..0916fd5bb1 100644 --- a/src/ifccityjson/cityjson2ifc.py +++ b/src/ifccityjson/cityjson2ifc.py @@ -1,3 +1,22 @@ + +# ifccityjson - Python CityJSON to IFC converter +# Copyright (C) 2021 Laurens J.N. Oostwegel +# +# This file is part of ifccityjson. +# +# ifccityjson is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ifccityjson 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ifccityjson. If not, see . + import ifcopenshell import ifcopenshell.api from geometry import GeometryIO diff --git a/src/ifccityjson/geometry.py b/src/ifccityjson/geometry.py index e483d3e6e5..87cebb392c 100644 --- a/src/ifccityjson/geometry.py +++ b/src/ifccityjson/geometry.py @@ -1,3 +1,22 @@ + +# ifccityjson - Python CityJSON to IFC converter +# Copyright (C) 2021 Laurens J.N. Oostwegel +# +# This file is part of ifccityjson. +# +# ifccityjson is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ifccityjson 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ifccityjson. If not, see . + import warnings class GeometryIO: diff --git a/src/ifccityjson/ifccityjson.py b/src/ifccityjson/ifccityjson.py index 49cc0526aa..c8cb23d691 100644 --- a/src/ifccityjson/ifccityjson.py +++ b/src/ifccityjson/ifccityjson.py @@ -1,3 +1,22 @@ + +# ifccityjson - Python CityJSON to IFC converter +# Copyright (C) 2021 Laurens J.N. Oostwegel +# +# This file is part of ifccityjson. +# +# ifccityjson is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ifccityjson 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ifccityjson. If not, see . + import argparse from cjio import cityjson from cityjson2ifc import Cityjson2ifc From cdd46066fa1bd39f7b85ce5baba0271da2d8cd9a Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 7 Aug 2021 10:28:13 +1000 Subject: [PATCH 130/168] Fix bug where you couldn't use userdefined types for type elements --- src/blenderbim/blenderbim/bim/module/root/ui.py | 5 ++++- .../ifcopenshell/api/root/create_entity.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/root/ui.py b/src/blenderbim/blenderbim/bim/module/root/ui.py index bd4aeb212a..6c92e39e26 100644 --- a/src/blenderbim/blenderbim/bim/module/root/ui.py +++ b/src/blenderbim/blenderbim/bim/module/root/ui.py @@ -35,7 +35,10 @@ class BIM_PT_class(Panel): data = Data.products[props.ifc_definition_id] name = data["type"] if data["PredefinedType"] and data["PredefinedType"] == "USERDEFINED": - name += "[{}]".format(data["ObjectType"]) + if data["ObjectType"]: + name += "[{}]".format(data["ObjectType"]) + elif data["ElementType"]: + name += "[{}]".format(data["ElementType"]) elif data["PredefinedType"]: name += "[{}]".format(data["PredefinedType"]) row = self.layout.row(align=True) diff --git a/src/ifcopenshell-python/ifcopenshell/api/root/create_entity.py b/src/ifcopenshell-python/ifcopenshell/api/root/create_entity.py index 93dc11d907..b0ed4132a2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/root/create_entity.py +++ b/src/ifcopenshell-python/ifcopenshell/api/root/create_entity.py @@ -25,7 +25,10 @@ class Usecase: element.PredefinedType = self.settings["predefined_type"] except: element.PredefinedType = "USERDEFINED" - element.ObjectType = self.settings["predefined_type"] + if hasattr(element, "ObjectType"): + element.ObjectType = self.settings["predefined_type"] + elif hasattr(element, "ElementType"): + element.ElementType = self.settings["predefined_type"] elif hasattr(element, "ObjectType"): element.ObjectType = self.settings["predefined_type"] if self.file.schema == "IFC2X3": From bcf82984cefb34c76bb66038331d54fe2e0bec2c Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 7 Aug 2021 17:01:42 +1000 Subject: [PATCH 131/168] New feature to extend columns, beams, and members to a target --- .../blenderbim/bim/module/model/__init__.py | 1 + .../blenderbim/bim/module/model/profile.py | 135 +++++++++++++++++- .../blenderbim/bim/module/model/wall.py | 6 +- .../blenderbim/bim/module/model/workspace.py | 13 +- 4 files changed, 150 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 5227400c96..985e4e8baf 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -12,6 +12,7 @@ classes = ( wall.SplitWall, wall.AddWallOpening, slab.AddSlabOpening, + profile.ExtendProfile, prop.BIMModelProperties, ui.BIM_PT_authoring, ui.BIM_PT_authoring_architectural, diff --git a/src/blenderbim/blenderbim/bim/module/model/profile.py b/src/blenderbim/blenderbim/bim/module/model/profile.py index e3e3d8ce06..6de8a6a0c1 100644 --- a/src/blenderbim/blenderbim/bim/module/model/profile.py +++ b/src/blenderbim/blenderbim/bim/module/model/profile.py @@ -8,7 +8,7 @@ import ifcopenshell.util.element import mathutils.geometry import blenderbim.bim.handler from blenderbim.bim.ifc import IfcStore -from math import pi, degrees +from math import pi, degrees, inf from mathutils import Vector, Matrix from ifcopenshell.api.pset.data import Data as PsetData from ifcopenshell.api.material.data import Data as MaterialData @@ -232,3 +232,136 @@ class DumbProfileRegenerator: if not obj or obj not in IfcStore.edited_objs: return bpy.ops.bim.update_representation(obj=obj.name) + + +class ExtendProfile(bpy.types.Operator): + bl_idname = "bim.extend_profile" + bl_label = "Extend Profile" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + selected_objs = context.selected_objects + for obj in selected_objs: + bpy.ops.bim.dynamically_void_product(obj=obj.name) + if len(selected_objs) == 0: + return {"FINISHED"} + if not context.active_object: + return {"FINISHED"} + if len(selected_objs) == 1: + DumbProfileExtender(context.active_object, target_coordinate=context.scene.cursor.location).extend() + IfcStore.edited_objs.add(context.active_object) + return {"FINISHED"} + if len(selected_objs) < 2: + return {"FINISHED"} + for obj in selected_objs: + if obj == context.active_object: + continue + DumbProfileExtender(obj, context.active_object).extend() + IfcStore.edited_objs.add(obj) + return {"FINISHED"} + + +class DumbProfileExtender: + # A profile is a prismatic extrusion along its local Z axis. + def __init__(self, profile, target=None, target_coordinate=None): + self.profile = profile + self.target = target + self.target_coordinate = target_coordinate + + # An extension of a profile is determined by casting a ray from the cardinal + # point of either extreme along the profiles local Z axis to a target + # object. The nearest result from this raycast will be the target extension + # point. + def extend(self): + extension_data = self.get_closest_extension_point() + if not extension_data: + return + if extension_data["end"] == "bottom": + self.profile.matrix_world.translation = extension_data["contact"] + if extension_data["direction"] == "up": + self.shift_top_faces(-extension_data["distance"]) + elif extension_data["direction"] == "down": + self.shift_top_faces(extension_data["distance"]) + if extension_data["end"] == "top": + if extension_data["direction"] == "up": + self.shift_top_faces(extension_data["distance"]) + elif extension_data["direction"] == "down": + self.shift_top_faces(-extension_data["distance"]) + + def shift_top_faces(self, z): + vertices = [] + for f in self.get_profile_top_faces(): + vertices.extend(f.vertices) + for v in set(vertices): + self.profile.data.vertices[v].co.z += z + + # An top face is defined as having at least one vertex on the max + # Z-axis, and a non-insignificant Z component of its face normal + def get_profile_top_faces(self): + faces = [] + max_z = max([v[2] for v in self.profile.bound_box]) + for f in self.profile.data.polygons: + if abs(f.normal.z) < 0.1: + continue + for v in f.vertices: + if self.profile.data.vertices[v].co.z == max_z: + faces.append(f) + break + return faces + + def get_closest_extension_point(self): + top = self.profile.matrix_world @ Vector((0, 0, self.profile.dimensions[2])) + bottom = self.profile.matrix_world.translation + up = self.profile.matrix_world.to_quaternion() @ Vector((0, 0, 1)) + down = self.profile.matrix_world.to_quaternion() @ Vector((0, 0, -1)) + + if self.target: + return self.get_closest_extension_point_from_target_obj(top, bottom, up, down) + elif self.target_coordinate: + return self.get_closest_extension_point_from_target_coordinate(top, bottom, up, down) + + def get_closest_extension_point_from_target_coordinate(self, top, bottom, up, down): + point = mathutils.geometry.intersect_line_plane( + bottom, top, self.target_coordinate, self.profile.matrix_world.to_quaternion() @ Vector((0, 0, 1)) + ) + if not point: + return + top_distance = (point - top).length + bottom_distance = (point - bottom).length + if top_distance < bottom_distance: + intersection_point, signed_distance = mathutils.geometry.intersect_point_line(point, top, bottom) + if signed_distance > 0: + return {"contact": point, "distance": top_distance, "end": "top", "direction": "down"} + else: + return {"contact": point, "distance": top_distance, "end": "top", "direction": "up"} + else: + intersection_point, signed_distance = mathutils.geometry.intersect_point_line(point, bottom, top) + if signed_distance > 0: + return {"contact": point, "distance": bottom_distance, "end": "bottom", "direction": "up"} + else: + return {"contact": point, "distance": bottom_distance, "end": "bottom", "direction": "down"} + + def get_closest_extension_point_from_target_obj(self, top, bottom, up, down): + t_top = self.target.matrix_world.inverted() @ top + t_bottom = self.target.matrix_world.inverted() @ bottom + t_up = self.target.matrix_world.inverted().to_quaternion() @ up + t_down = self.target.matrix_world.inverted().to_quaternion() @ down + + results = [] + results.append((self.target.ray_cast(t_top, t_up, distance=50), top, "top", "up")) + results.append((self.target.ray_cast(t_top, t_down, distance=50), top, "top", "down")) + results.append((self.target.ray_cast(t_bottom, t_up, distance=50), bottom, "bottom", "up")) + results.append((self.target.ray_cast(t_bottom, t_down, distance=50), bottom, "bottom", "down")) + + min_distance = float(inf) + final = None + + for result in results: + if result[0][0]: + contact = self.target.matrix_world @ result[0][1] + distance = (contact - result[1]).length + if distance < min_distance: + min_distance = distance + final = {"contact": contact, "distance": distance, "end": result[2], "direction": result[3]} + + return final diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index c658e46609..c132a72339 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -609,6 +609,8 @@ class DumbWallJoiner: min_x = min([v[0] for v in wall.bound_box]) max_x = max([v[0] for v in wall.bound_box]) for f in wall.data.polygons: + if abs(f.normal.x) < 0.1: + continue end_face_index = self.get_wall_face_end(wall, f, min_x, max_x) if end_face_index == 1: min_faces.append(f) @@ -619,9 +621,9 @@ class DumbWallJoiner: # 1 is the leftmost (minimum local X axis) end, and 2 is the rightmost end def get_wall_face_end(self, wall, face, min_x, max_x): for v in face.vertices: - if wall.data.vertices[v].co.x == min_x and abs(face.normal.x) > 0.1: + if wall.data.vertices[v].co.x == min_x: return 1 - if wall.data.vertices[v].co.x == max_x and abs(face.normal.x) > 0.1: + if wall.data.vertices[v].co.x == max_x: return 2 diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py index 0d449baefe..4b29e5092f 100644 --- a/src/blenderbim/blenderbim/bim/module/model/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py @@ -44,7 +44,7 @@ class BimTool(WorkSpaceTool): row.label(text="Add Type Instance", icon="EVENT_A") if props.ifc_class == "IfcWallType": - row = layout.row(align=True) + row = layout.row() row.label(text="Join") row = layout.row(align=True) row.label(text="", icon="EVENT_SHIFT") @@ -56,7 +56,7 @@ class BimTool(WorkSpaceTool): row.label(text="", icon="EVENT_SHIFT") row.label(text="Mitre", icon="EVENT_Y") - row = layout.row(align=True) + row = layout.row() row.label(text="Wall Tools") row = layout.row(align=True) row.label(text="", icon="EVENT_SHIFT") @@ -73,6 +73,13 @@ class BimTool(WorkSpaceTool): row.label(text="", icon="EVENT_SHIFT") row.label(text="Opening", icon="EVENT_O") + if props.ifc_class in ["IfcColumnType", "IfcBeamType", "IfcMemberType"]: + row = layout.row() + row.label(text="Join") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") + row.label(text="Extend", icon="EVENT_E") + row = layout.row(align=True) row.label(text="Align") row = layout.row(align=True) @@ -119,6 +126,8 @@ class Hotkey(bpy.types.Operator): def hotkey_S_E(self): if self.props.ifc_class == "IfcWallType": bpy.ops.bim.join_wall(join_type="T") + elif self.props.ifc_class in ["IfcColumnType", "IfcBeamType", "IfcMemberType"]: + bpy.ops.bim.extend_profile() def hotkey_S_V(self): if self.props.ifc_class == "IfcWallType": From 176e22af8b95c43780f27f78e2bbfa91d7a4b962 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 7 Aug 2021 18:37:45 +1000 Subject: [PATCH 132/168] Fix bug to prevent users from appending a project library asset twice --- src/blenderbim/blenderbim/bim/import_ifc.py | 2 +- src/blenderbim/blenderbim/bim/module/project/operator.py | 2 ++ .../ifcopenshell/api/project/append_asset.py | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 18583c357e..603f7fc1ce 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -153,7 +153,7 @@ class IfcImporter: self.settings_native.set(self.settings_native.INCLUDE_CURVES, True) self.settings_2d = ifcopenshell.geom.settings() self.settings_2d.set(self.settings_2d.INCLUDE_CURVES, True) - self.filter_mode = "BLACKLIST" + self.filter_mode = None self.include_elements = set() self.exclude_elements = set() self.project = None diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index b30a8bdc74..4377d085c4 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -326,6 +326,8 @@ class AppendLibraryElement(bpy.types.Operator): library=IfcStore.library_file, element=IfcStore.library_file.by_id(self.definition), ) + if not element: + return {"FINISHED"} self.import_type_from_ifc(element, context) blenderbim.bim.handler.purge_module_data() return {"FINISHED"} diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py index 76c2bd7e81..6c0668beb3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py @@ -11,7 +11,7 @@ class Usecase: def execute(self): self.added_elements = set() - if self.settings["element"].is_a("IfcTypeProduct"): + if self.settings["element"].is_a("IfcTypeProduct") and not self.file.by_guid(self.settings["element"].GlobalId): return self.append_type_product() def append_type_product(self): From a874a6b673c646ebe7ddd8061f77eda9e07d58d2 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 7 Aug 2021 20:35:08 +1000 Subject: [PATCH 133/168] Fix #1632. Fix bug where you couldn't load the add-on in background mode. Thanks s-leger! --- src/blenderbim/blenderbim/bim/module/model/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py index 985e4e8baf..bd456e2658 100644 --- a/src/blenderbim/blenderbim/bim/module/model/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py @@ -33,7 +33,8 @@ addon_keymaps = [] def register(): - bpy.utils.register_tool(workspace.BimTool, after={"builtin.scale_cage"}, separator=True, group=True) + if not bpy.app.background: + bpy.utils.register_tool(workspace.BimTool, after={"builtin.scale_cage"}, separator=True, group=True) bpy.types.Scene.BIMModelProperties = bpy.props.PointerProperty(type=prop.BIMModelProperties) bpy.types.VIEW3D_MT_mesh_add.append(grid.add_object_button) bpy.types.VIEW3D_MT_mesh_add.append(stair.add_object_button) @@ -50,7 +51,8 @@ def register(): def unregister(): - bpy.utils.unregister_tool(workspace.BimTool) + if not bpy.app.background: + bpy.utils.unregister_tool(workspace.BimTool) del bpy.types.Scene.BIMModelProperties bpy.app.handlers.load_post.remove(handler.load_post) bpy.types.VIEW3D_MT_mesh_add.remove(grid.add_object_button) From 0087fa875bb3908d2080ce1aff0be4fc6bebe903 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 7 Aug 2021 13:01:52 +0200 Subject: [PATCH 134/168] separate tree::add_element(), dynamic_cast<> for invalid settings --- src/ifcgeom/IfcGeomTree.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ifcgeom/IfcGeomTree.h b/src/ifcgeom/IfcGeomTree.h index 7d8c175c2e..027cd3d903 100644 --- a/src/ifcgeom/IfcGeomTree.h +++ b/src/ifcgeom/IfcGeomTree.h @@ -305,13 +305,19 @@ namespace IfcGeom { void add_file(IfcGeom::Iterator& it) { if (it.initialize()) { do { - IfcGeom::BRepElement* elem = (IfcGeom::BRepElement*)it.get(); - auto compound = elem->geometry().as_compound(); - compound.Move(elem->transformation().data()); - add((IfcUtil::IfcBaseEntity*)it.file()->instance_by_id(elem->id()), compound); + add_element(dynamic_cast*>(it.get())); } while (it.next()); } } + + void add_element(IfcGeom::BRepElement* elem) { + if (!elem) { + return; + } + auto compound = elem->geometry().as_compound(); + compound.Move(elem->transformation().data()); + add(elem->product(), compound); + } }; } From 5a52f3aeea4b331ce8a991a8c681f668e180f63f Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 7 Aug 2021 21:06:23 +1000 Subject: [PATCH 135/168] Fix #1528. Fix bug where IFC project libraries could not be imported as a file. --- src/blenderbim/blenderbim/bim/import_ifc.py | 16 ++++++++++++---- .../ifcopenshell/api/type/data.py | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 603f7fc1ce..bd32c16cfd 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -349,7 +349,10 @@ class IfcImporter: props = bpy.context.scene.BIMGeoreferenceProperties if props.has_blender_offset: return - project = self.file.by_type("IfcProject")[0] + if self.file.schema == "IFC2X3": + project = self.file.by_type("IfcProject")[0] + else: + project = self.file.by_type("IfcContext")[0] site = self.find_decomposed_ifc_class(project, "IfcSite") if site and self.is_element_far_away(site[0], is_meters=False): return self.guess_georeferencing(site[0]) @@ -1004,8 +1007,13 @@ class IfcImporter: ) def create_project(self): - self.project = {"ifc": self.file.by_type("IfcProject")[0]} - self.project["blender"] = bpy.data.collections.new("IfcProject/{}".format(self.project["ifc"].Name)) + if self.file.schema == "IFC2X3": + self.project = {"ifc": self.file.by_type("IfcProject")[0]} + else: + self.project = {"ifc": self.file.by_type("IfcContext")[0]} + self.project["blender"] = bpy.data.collections.new( + "{}/{}".format(self.project["ifc"].is_a(), self.project["ifc"].Name) + ) obj = self.create_product(self.project["ifc"]) if obj: self.project["blender"].objects.link(obj) @@ -1140,7 +1148,7 @@ class IfcImporter: self.place_object_in_spatial_tree(self.file.by_id(ifc_definition_id), obj) def place_object_in_spatial_tree(self, element, obj): - if element.is_a("IfcProject"): + if element.is_a() in ["IfcProject", "IfcProjectLibrary"]: return elif element.is_a("IfcTypeObject"): self.type_collection.objects.link(obj) diff --git a/src/ifcopenshell-python/ifcopenshell/api/type/data.py b/src/ifcopenshell-python/ifcopenshell/api/type/data.py index c768bd6cf2..93eb65bffe 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/type/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/type/data.py @@ -23,10 +23,10 @@ class Data: product = cls.file.by_id(product_id) cls.types[product_id] = None if cls.file.schema == "IFC2X3": - if hasattr(product, "ObjectTypeOf"): + if getattr(product, "ObjectTypeOf", None): cls.types[product_id] = [o.id() for o in product.ObjectTypeOf[0].RelatedObjects] else: - if hasattr(product, "Types"): + if getattr(product, "Types", None): cls.types[product_id] = [o.id() for o in product.Types[0].RelatedObjects] @classmethod From ab8fd0a6fee4fe950e860a5fc07be8c8959045f0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 7 Aug 2021 21:15:36 +1000 Subject: [PATCH 136/168] WIP licenses. See #1082. --- src/ifc2ca/ca2ifc.py | 19 ++++++++++++++++++ src/ifc2ca/ifc2ca.py | 19 ++++++++++++++++++ src/ifc2ca/scriptCodeAster.py | 19 ++++++++++++++++++ src/ifc2ca/scriptCodeAsterBonded.py | 19 ++++++++++++++++++ src/ifc2ca/scriptSalome.py | 19 ++++++++++++++++++ src/ifc2ca/scriptSalomeBonded.py | 19 ++++++++++++++++++ src/ifcpatch/bootstrap.py | 20 +++++++++++++++++++ src/ifcpatch/ifcpatch/__init__.py | 19 ++++++++++++++++++ src/ifcpatch/ifcpatch/__main__.py | 19 ++++++++++++++++++ .../ifcpatch/recipes/ConvertLengthUnit.py | 19 ++++++++++++++++++ .../recipes/ConvertPropertiesToQuantities.py | 19 ++++++++++++++++++ .../recipes/DowngradeIndexedPolyCurve.py | 19 ++++++++++++++++++ .../ifcpatch/recipes/ExtractElements.py | 19 ++++++++++++++++++ .../ifcpatch/recipes/ExtractSpaces.py | 19 ++++++++++++++++++ .../recipes/MergeDuplicateTypesByTag.py | 19 ++++++++++++++++++ src/ifcpatch/ifcpatch/recipes/MergeProject.py | 19 ++++++++++++++++++ src/ifcpatch/ifcpatch/recipes/Migrate.py | 19 ++++++++++++++++++ .../recipes/OffsetObjectPlacements.py | 19 ++++++++++++++++++ .../recipes/OffsetStoreyElevations.py | 19 ++++++++++++++++++ src/ifcpatch/ifcpatch/recipes/Optimise.py | 19 ++++++++++++++++++ .../recipes/RecycleNonRootedElements.py | 19 ++++++++++++++++++ .../ifcpatch/recipes/RegenerateGlobalIds.py | 19 ++++++++++++++++++ .../recipes/RemoveSiteRepresentation.py | 19 ++++++++++++++++++ .../recipes/ResetAbsoluteCoordinates.py | 19 ++++++++++++++++++ .../recipes/ResetSpatialElementLocations.py | 19 ++++++++++++++++++ .../ifcpatch/recipes/SetRefElevation.py | 19 ++++++++++++++++++ .../ifcpatch/recipes/SplitByBuildingStorey.py | 19 ++++++++++++++++++ src/ifcpatch/ifcpatch/recipes/__init__.py | 19 ++++++++++++++++++ src/ifcpatch/make.py | 20 +++++++++++++++++++ 29 files changed, 553 insertions(+) mode change 100755 => 100644 src/ifc2ca/scriptCodeAsterBonded.py mode change 100755 => 100644 src/ifc2ca/scriptSalomeBonded.py diff --git a/src/ifc2ca/ca2ifc.py b/src/ifc2ca/ca2ifc.py index 1a1cd95361..78899ade84 100644 --- a/src/ifc2ca/ca2ifc.py +++ b/src/ifc2ca/ca2ifc.py @@ -1,3 +1,22 @@ + +# Ifc2CA - IFC Code_Aster utility +# Copyright (C) 2020, 2021 Ioannis P. Christovasilis +# +# This file is part of Ifc2CA. +# +# Ifc2CA is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc2CA 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc2CA. If not, see . + import json import ifcopenshell import os diff --git a/src/ifc2ca/ifc2ca.py b/src/ifc2ca/ifc2ca.py index b9a3bb452c..0b65c7c6f6 100644 --- a/src/ifc2ca/ifc2ca.py +++ b/src/ifc2ca/ifc2ca.py @@ -1,3 +1,22 @@ + +# Ifc2CA - IFC Code_Aster utility +# Copyright (C) 2020, 2021 Ioannis P. Christovasilis +# +# This file is part of Ifc2CA. +# +# Ifc2CA is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc2CA 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc2CA. If not, see . + from __future__ import division from __future__ import print_function import json diff --git a/src/ifc2ca/scriptCodeAster.py b/src/ifc2ca/scriptCodeAster.py index 3c42bf6dbf..1741915ecf 100644 --- a/src/ifc2ca/scriptCodeAster.py +++ b/src/ifc2ca/scriptCodeAster.py @@ -1,3 +1,22 @@ + +# Ifc2CA - IFC Code_Aster utility +# Copyright (C) 2020, 2021 Ioannis P. Christovasilis +# +# This file is part of Ifc2CA. +# +# Ifc2CA is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc2CA 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc2CA. If not, see . + import json import numpy as np import itertools diff --git a/src/ifc2ca/scriptCodeAsterBonded.py b/src/ifc2ca/scriptCodeAsterBonded.py old mode 100755 new mode 100644 index 983f75976a..34d91fc5f4 --- a/src/ifc2ca/scriptCodeAsterBonded.py +++ b/src/ifc2ca/scriptCodeAsterBonded.py @@ -1,3 +1,22 @@ + +# Ifc2CA - IFC Code_Aster utility +# Copyright (C) 2020, 2021 Ioannis P. Christovasilis +# +# This file is part of Ifc2CA. +# +# Ifc2CA is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc2CA 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc2CA. If not, see . + import json import numpy as np import itertools diff --git a/src/ifc2ca/scriptSalome.py b/src/ifc2ca/scriptSalome.py index 8e761078fe..a5a4e818dd 100644 --- a/src/ifc2ca/scriptSalome.py +++ b/src/ifc2ca/scriptSalome.py @@ -1,3 +1,22 @@ + +# Ifc2CA - IFC Code_Aster utility +# Copyright (C) 2020, 2021 Ioannis P. Christovasilis +# +# This file is part of Ifc2CA. +# +# Ifc2CA is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc2CA 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc2CA. If not, see . + from __future__ import division from __future__ import print_function import os diff --git a/src/ifc2ca/scriptSalomeBonded.py b/src/ifc2ca/scriptSalomeBonded.py old mode 100755 new mode 100644 index 0d17b1047c..55512cf291 --- a/src/ifc2ca/scriptSalomeBonded.py +++ b/src/ifc2ca/scriptSalomeBonded.py @@ -1,3 +1,22 @@ + +# Ifc2CA - IFC Code_Aster utility +# Copyright (C) 2020, 2021 Ioannis P. Christovasilis +# +# This file is part of Ifc2CA. +# +# Ifc2CA is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc2CA 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc2CA. If not, see . + from __future__ import division from __future__ import print_function import os diff --git a/src/ifcpatch/bootstrap.py b/src/ifcpatch/bootstrap.py index 6fa8bba961..524482af04 100644 --- a/src/ifcpatch/bootstrap.py +++ b/src/ifcpatch/bootstrap.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import toposort import ifcpatch import ifcpatch.recipes @@ -6,3 +25,4 @@ import ifcopenshell.util.element import ifcopenshell.util.schema import ifcpatch.__main__ + diff --git a/src/ifcpatch/ifcpatch/__init__.py b/src/ifcpatch/ifcpatch/__init__.py index 1675ecae94..8c7b4b161e 100644 --- a/src/ifcpatch/ifcpatch/__init__.py +++ b/src/ifcpatch/ifcpatch/__init__.py @@ -1,4 +1,23 @@ #!/usr/bin/env python3 + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + # This can be packaged into one executable with ./make.py import ifcopenshell diff --git a/src/ifcpatch/ifcpatch/__main__.py b/src/ifcpatch/ifcpatch/__main__.py index c6e15d309d..115326b2c0 100644 --- a/src/ifcpatch/ifcpatch/__main__.py +++ b/src/ifcpatch/ifcpatch/__main__.py @@ -1,4 +1,23 @@ #!/usr/bin/env python3 + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import argparse import ifcpatch diff --git a/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py b/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py index 328d6112d7..96ef036b3c 100644 --- a/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py +++ b/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.api import ifcopenshell.util.pset diff --git a/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py b/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py index af228c2035..102639ef46 100644 --- a/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py +++ b/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.util.pset import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py b/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py index 05d1c9b645..60bec8e701 100644 --- a/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py +++ b/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py index 99b0732365..2e6f5ce375 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.util.selector diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractSpaces.py b/src/ifcpatch/ifcpatch/recipes/ExtractSpaces.py index 7c1c95621f..ca5077e401 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractSpaces.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractSpaces.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.util.selector diff --git a/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypesByTag.py b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypesByTag.py index f1381411d5..eec13aecc9 100644 --- a/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypesByTag.py +++ b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypesByTag.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/MergeProject.py b/src/ifcpatch/ifcpatch/recipes/MergeProject.py index cfe775551f..c413ce013b 100644 --- a/src/ifcpatch/ifcpatch/recipes/MergeProject.py +++ b/src/ifcpatch/ifcpatch/recipes/MergeProject.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/Migrate.py b/src/ifcpatch/ifcpatch/recipes/Migrate.py index 7d238e2204..bc31388e2b 100644 --- a/src/ifcpatch/ifcpatch/recipes/Migrate.py +++ b/src/ifcpatch/ifcpatch/recipes/Migrate.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.util.schema diff --git a/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py b/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py index d9da46c79a..e4dc9e0adb 100644 --- a/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py +++ b/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import math class Patcher: diff --git a/src/ifcpatch/ifcpatch/recipes/OffsetStoreyElevations.py b/src/ifcpatch/ifcpatch/recipes/OffsetStoreyElevations.py index c0384693c3..79a35fb66d 100644 --- a/src/ifcpatch/ifcpatch/recipes/OffsetStoreyElevations.py +++ b/src/ifcpatch/ifcpatch/recipes/OffsetStoreyElevations.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + class Patcher: def __init__(self, src, file, logger, args=None): self.src = src diff --git a/src/ifcpatch/ifcpatch/recipes/Optimise.py b/src/ifcpatch/ifcpatch/recipes/Optimise.py index f990c65516..99272ee1af 100644 --- a/src/ifcpatch/ifcpatch/recipes/Optimise.py +++ b/src/ifcpatch/ifcpatch/recipes/Optimise.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell import ifcopenshell.util.element from toposort import toposort_flatten as toposort diff --git a/src/ifcpatch/ifcpatch/recipes/RecycleNonRootedElements.py b/src/ifcpatch/ifcpatch/recipes/RecycleNonRootedElements.py index 48ec179dd5..ac3160837f 100644 --- a/src/ifcpatch/ifcpatch/recipes/RecycleNonRootedElements.py +++ b/src/ifcpatch/ifcpatch/recipes/RecycleNonRootedElements.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + from collections import deque import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py b/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py index 67cd3af170..a921a08dbf 100644 --- a/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py +++ b/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import ifcopenshell diff --git a/src/ifcpatch/ifcpatch/recipes/RemoveSiteRepresentation.py b/src/ifcpatch/ifcpatch/recipes/RemoveSiteRepresentation.py index 347cddce17..6498fe135a 100644 --- a/src/ifcpatch/ifcpatch/recipes/RemoveSiteRepresentation.py +++ b/src/ifcpatch/ifcpatch/recipes/RemoveSiteRepresentation.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + class Patcher: def __init__(self, src, file, logger, args=None): self.src = src diff --git a/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py b/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py index 83edff10a6..9cb10cdf65 100644 --- a/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py +++ b/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + class Patcher: def __init__(self, src, file, logger, args=None): self.src = src diff --git a/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py b/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py index 26812aeefc..2747e785c7 100644 --- a/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py +++ b/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + class Patcher: def __init__(self, src, file, logger, args=None): self.src = src diff --git a/src/ifcpatch/ifcpatch/recipes/SetRefElevation.py b/src/ifcpatch/ifcpatch/recipes/SetRefElevation.py index f06e8e77f6..0f330b64f7 100644 --- a/src/ifcpatch/ifcpatch/recipes/SetRefElevation.py +++ b/src/ifcpatch/ifcpatch/recipes/SetRefElevation.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + class Patcher: def __init__(self, src, file, logger, args=None): self.src = src diff --git a/src/ifcpatch/ifcpatch/recipes/SplitByBuildingStorey.py b/src/ifcpatch/ifcpatch/recipes/SplitByBuildingStorey.py index 44a112ea5e..f4346fa806 100644 --- a/src/ifcpatch/ifcpatch/recipes/SplitByBuildingStorey.py +++ b/src/ifcpatch/ifcpatch/recipes/SplitByBuildingStorey.py @@ -1,3 +1,22 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + class Patcher: def __init__(self, src, file, logger, args=None): self.src = src diff --git a/src/ifcpatch/ifcpatch/recipes/__init__.py b/src/ifcpatch/ifcpatch/recipes/__init__.py index e69de29bb2..e38f65e07e 100644 --- a/src/ifcpatch/ifcpatch/recipes/__init__.py +++ b/src/ifcpatch/ifcpatch/recipes/__init__.py @@ -0,0 +1,19 @@ + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + diff --git a/src/ifcpatch/make.py b/src/ifcpatch/make.py index 78e13bfc03..21de52de8e 100644 --- a/src/ifcpatch/make.py +++ b/src/ifcpatch/make.py @@ -1,6 +1,26 @@ #!/usr/bin/env python3 + +# IfcPatch - IFC patching utiliy +# Copyright (C) 2020, 2021 Dion Moult +# +# This file is part of IfcPatch. +# +# IfcPatch is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcPatch 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcPatch. If not, see . + import os import subprocess cmd = f'pyinstaller ./bootstrap.py --name ifcpatch --onefile --clean --add-data "ifcpatch{os.pathsep}ifcpatch"' subprocess.check_output(cmd, shell=True) + From 0183cf3b31d9906b96a5d36a5d24960ff69f0adc Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 7 Aug 2021 15:48:50 +0200 Subject: [PATCH 137/168] Update FUNDING.yml --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index dd9fc93536..02f45386c9 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,4 @@ # These are supported funding model platforms github: [aothms] +open_collective: opensourcebim From 0d6cacdd733c213f84ecad14d75eea6ac4dc2063 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Aug 2021 11:57:47 +1000 Subject: [PATCH 138/168] BCF cameras now support global absolute coordinates with a Blender offset --- .../blenderbim/bim/module/bcf/operator.py | 58 +++++++++++++------ 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/bcf/operator.py b/src/blenderbim/blenderbim/bim/module/bcf/operator.py index 4fcfbbcf77..c8dff8e1c6 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/operator.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/operator.py @@ -3,6 +3,9 @@ import bpy import bcf import bcf.bcfxml import bcf.v2.data +import numpy as np +import ifcopenshell +import ifcopenshell.util.unit from . import bcfstore from blenderbim.bim.ifc import IfcStore from math import radians, degrees, atan, tan, cos, sin @@ -700,20 +703,8 @@ class ActivateBcfViewpoint(bpy.types.Operator): area = next(area for area in context.screen.areas if area.type == "VIEW_3D") area.spaces[0].region_3d.view_perspective = "CAMERA" - if viewpoint.orthogonal_camera: - camera = viewpoint.orthogonal_camera - obj.data.type = "ORTHO" - obj.data.ortho_scale = viewpoint.orthogonal_camera.view_to_world_scale - elif viewpoint.perspective_camera: - camera = viewpoint.perspective_camera - obj.data.type = "PERSP" - if cam_aspect >= 1: - obj.data.angle = radians(camera.field_of_view) - else: - # https://blender.stackexchange.com/questions/23431/how-to-set-camera-horizontal-and-vertical-fov - obj.data.angle = 2 * atan((0.5 * cam_height) / (0.5 * cam_width / tan(radians(camera.field_of_view) / 2))) - - self.set_viewpoint_components(viewpoint) + if self.file: + self.set_viewpoint_components(viewpoint) gp = bpy.data.grease_pencils.get("BCF") if gp: @@ -729,15 +720,46 @@ class ActivateBcfViewpoint(bpy.types.Operator): if viewpoint.bitmaps: self.create_bitmaps(bcfxml, viewpoint, topic) + self.setup_camera(viewpoint, obj, cam_aspect) + return {"FINISHED"} + + def setup_camera(self, viewpoint, obj, cam_aspect): + if viewpoint.orthogonal_camera: + camera = viewpoint.orthogonal_camera + obj.data.type = "ORTHO" + obj.data.ortho_scale = viewpoint.orthogonal_camera.view_to_world_scale + elif viewpoint.perspective_camera: + camera = viewpoint.perspective_camera + obj.data.type = "PERSP" + if cam_aspect >= 1: + obj.data.angle = radians(camera.field_of_view) + else: + # https://blender.stackexchange.com/questions/23431/how-to-set-camera-horizontal-and-vertical-fov + obj.data.angle = 2 * atan((0.5 * cam_height) / (0.5 * cam_width / tan(radians(camera.field_of_view) / 2))) + z_axis = Vector((-camera.camera_direction.x, -camera.camera_direction.y, -camera.camera_direction.z)).normalized() y_axis = Vector((camera.camera_up_vector.x, camera.camera_up_vector.y, camera.camera_up_vector.z)).normalized() x_axis = y_axis.cross(z_axis).normalized() rotation = Matrix((x_axis, y_axis, z_axis)) rotation.invert() - location = Vector((camera.camera_view_point.x, camera.camera_view_point.y, camera.camera_view_point.z)) - obj.matrix_world = rotation.to_4x4() - obj.location = location - return {"FINISHED"} + matrix = np.matrix(( + [x_axis[0], y_axis[0], z_axis[0], camera.camera_view_point.x], + [x_axis[1], y_axis[1], z_axis[1], camera.camera_view_point.y], + [x_axis[2], y_axis[2], z_axis[2], camera.camera_view_point.z], + [0, 0, 0, 1], + )) + props = bpy.context.scene.BIMGeoreferenceProperties + if props.has_blender_offset: + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(self.file) + matrix = ifcopenshell.util.geolocation.global2local( + matrix, + float(props.blender_eastings) * unit_scale, + float(props.blender_northings) * unit_scale, + float(props.blender_orthogonal_height) * unit_scale, + float(props.blender_x_axis_abscissa), + float(props.blender_x_axis_ordinate), + ) + obj.matrix_world = Matrix(matrix.tolist()) def set_viewpoint_components(self, viewpoint): if not viewpoint.components: From 70f6857325b3acdc66caf3c9ffe7678eb490a9e3 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Aug 2021 12:06:01 +1000 Subject: [PATCH 139/168] Fix #1357. Remove temporary workaround for broadphase tree creation. Thanks aothms! --- src/blenderbim/Makefile | 9 +++------ src/ifcclash/ifcclash/collider.py | 15 +++------------ src/ifcclash/ifcclash/ifcclash.py | 2 +- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile index 5e9ee0a24c..9f2dc966e6 100644 --- a/src/blenderbim/Makefile +++ b/src/blenderbim/Makefile @@ -3,9 +3,11 @@ PYVERSION:=py37 ifeq ($(PYVERSION), py37) PYLIBDIR:=python3.7 +PYNUMBER:=37 endif ifeq ($(PYVERSION), py39) PYLIBDIR:=python3.9 +PYNUMBER:=39 endif ifeq ($(PLATFORM), linux) @@ -67,12 +69,7 @@ endif cp -r blenderbim/* dist/blenderbim/ # Provides IfcOpenShell Python functionality -ifeq ($(PYVERSION), py37) - cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-37-v0.6.0-f14d349-$(PLATFORM)64.zip -endif -ifeq ($(PYVERSION), py39) - cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-39-v0.6.0-f14d349-$(PLATFORM)64.zip -endif + cd dist/working && wget https://s3.amazonaws.com/ifcopenshell-builds/ifcblender-python-$(PYNUMBER)-v0.6.0-0087fa8-$(PLATFORM)64.zip cd dist/working && unzip ifcblender* cp -r dist/working/io_import_scene_ifc/ifcopenshell dist/blenderbim/libs/site/packages/ diff --git a/src/ifcclash/ifcclash/collider.py b/src/ifcclash/ifcclash/collider.py index 472fb9416d..de360da1ce 100644 --- a/src/ifcclash/ifcclash/collider.py +++ b/src/ifcclash/ifcclash/collider.py @@ -31,23 +31,14 @@ class Collider: self.groups[name] = {"elements": {}, "objects": {}} def create_objects(self, name, ifc_file, iterator, elements): - self.tree.add_iterator(iterator) - self.groups[name]["elements"].update({e.GlobalId: e for e in elements}) - - # Temporary hack. See #1357. - import multiprocessing - - iterator = ifcopenshell.geom.iterator( - ifcopenshell.geom.settings(), ifc_file, multiprocessing.cpu_count(), include=elements - ) - valid_file = iterator.initialize() - if not valid_file: - return False + assert iterator.initialize() while True: + self.tree.add_element(iterator.get_native()) shape = iterator.get() self.create_object(name, shape.guid, shape) if not iterator.next(): break + self.groups[name]["elements"].update({e.GlobalId: e for e in elements}) def create_object(self, group_name, id, shape): obj = hppfcl.CollisionObject( diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py index e1f828d709..172b09122a 100644 --- a/src/ifcclash/ifcclash/ifcclash.py +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -34,7 +34,7 @@ from . import collider class Clasher: def __init__(self, settings): self.settings = settings - self.geom_settings = ifcopenshell.geom.settings(DISABLE_TRIANGULATION=True) + self.geom_settings = ifcopenshell.geom.settings() self.clash_sets = [] self.collider = collider.Collider() self.selector = ifcopenshell.util.selector.Selector() From c1ae066e76581faf445a3928ec884bcf6e566a73 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Aug 2021 14:02:09 +1000 Subject: [PATCH 140/168] Switching BCF viewpoints is now sigificantly faster on large projects. --- .../blenderbim/bim/module/bcf/operator.py | 99 ++++++++++++++----- 1 file changed, 72 insertions(+), 27 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/bcf/operator.py b/src/blenderbim/blenderbim/bim/module/bcf/operator.py index c8dff8e1c6..1477d06616 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/operator.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/operator.py @@ -764,39 +764,84 @@ class ActivateBcfViewpoint(bpy.types.Operator): def set_viewpoint_components(self, viewpoint): if not viewpoint.components: return - selected_global_ids = [s.ifc_guid for s in viewpoint.components.selection] + + # Operators with context overrides are used because they are + # significantly faster than looping through all objects + exception_global_ids = [v.ifc_guid for v in viewpoint.components.visibility.exceptions] + + if viewpoint.components.visibility.default_visibility: + old = bpy.context.area.type + bpy.context.area.type = "VIEW_3D" + bpy.ops.object.hide_view_clear() + bpy.context.area.type = old + for global_id in exception_global_ids: + obj = IfcStore.get_element(global_id) + if obj: + obj.hide_set(True) + else: + objs = [] + for global_id in exception_global_ids: + obj = IfcStore.get_element(global_id) + if obj: + objs.append(obj) + if objs: + old = bpy.context.area.type + bpy.context.area.type = "VIEW_3D" + context_override = {} + context_override["object"] = context_override["active_object"] = objs[0] + context_override["selected_objects"] = context_override["selected_editable_objects"] = objs + bpy.ops.object.hide_view_set(context_override, unselected=True) + bpy.context.area.type = old + + if viewpoint.components.view_setup_hints: + if not viewpoint.components.view_setup_hints.spaces_visible: + self.hide_spaces() + if viewpoint.components.view_setup_hints.openings_visible is not None: + self.set_openings_visibility(viewpoint.components.view_setup_hints.openings_visible) + else: + self.hide_spaces() + self.set_openings_visibility(False) + + self.set_selection(viewpoint) + self.set_colours(viewpoint) + + def hide_spaces(self): + old = bpy.context.area.type + bpy.context.area.type = "VIEW_3D" + bpy.ops.object.select_pattern(pattern="IfcSpace/*") + bpy.ops.object.hide_view_set({}) + bpy.context.area.type = old + + def set_openings_visibility(self, is_visible): + for collection in self.get_opening_collections(): + collection.hide_viewport = not is_visible + + def set_selection(self, viewpoint): + selected_global_ids = [s.ifc_guid for s in viewpoint.components.selection] + bpy.ops.object.select_all(action="DESELECT") + for global_id in selected_global_ids: + obj = IfcStore.get_element(global_id) + if obj: + obj.select_set(True) + + def set_colours(self, viewpoint): global_id_colours = {} for coloring in viewpoint.components.coloring: for component in coloring.components: global_id_colours.setdefault(component.ifc_guid, coloring.color) + for global_id, color in global_id_colours.items(): + obj = IfcStore.get_element(global_id) + if obj: + obj.color = self.hex_to_rgb(color) - for obj in bpy.data.objects: - if not obj.BIMObjectProperties.ifc_definition_id: - continue - global_id = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id).GlobalId - is_visible = viewpoint.components.visibility.default_visibility - if global_id in exception_global_ids: - is_visible = not is_visible - if not is_visible: - obj.hide_set(True) - continue - if "IfcSpace" in obj.name: - if viewpoint.components.view_setup_hints: - is_visible = viewpoint.components.view_setup_hints.spaces_visible - else: - is_visible = False - elif "IfcOpeningElement" in obj.name: - if viewpoint.components.view_setup_hints: - is_visible = viewpoint.components.view_setup_hints.openings_visible - else: - is_visible = False - obj.hide_set(not is_visible) - if not is_visible: - continue - obj.select_set(global_id in selected_global_ids) - if global_id in global_id_colours: - obj.color = self.hex_to_rgb(global_id_colours[global_id]) + def get_opening_collections(self): + collections = [] + for collection in bpy.context.view_layer.layer_collection.children: + opening_collection = collection.children.get("IfcOpeningElements") + if opening_collection: + collections.append(opening_collection) + return collections def draw_lines(self, viewpoint, context): gp = bpy.data.grease_pencils.new("BCF") From 2033ee1c6911ed9e9394dd9cf39b02ba6161286e Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Aug 2021 16:13:19 +1000 Subject: [PATCH 141/168] Minor fix --- src/ifcopenshell-python/ifcopenshell/util/element.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/element.py b/src/ifcopenshell-python/ifcopenshell/util/element.py index 1dfeac623b..743c6a102c 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/element.py +++ b/src/ifcopenshell-python/ifcopenshell/util/element.py @@ -73,7 +73,7 @@ def get_material(element, should_skip_usage=False): return relationship.RelatingMaterial.ForProfileSet return relationship.RelatingMaterial relating_type = get_type(element) - if hasattr(relating_type, "HasAssociations") and relating_type.HasAssociations: + if relating_type != element and hasattr(relating_type, "HasAssociations") and relating_type.HasAssociations: return get_material(relating_type, should_skip_usage) From 18a52fd5f89a0c17ae52140f5b8d9c6a65f74d5a Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Aug 2021 16:54:48 +1000 Subject: [PATCH 142/168] IfcClash now has logging and fix bug where exclude clash filters on large files was very slow --- .../blenderbim/bim/module/clash/prop.py | 2 +- src/ifcclash/ifcclash/collider.py | 23 +++++++++++++-- src/ifcclash/ifcclash/ifcclash.py | 28 +++++++++++++------ 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/clash/prop.py b/src/blenderbim/blenderbim/bim/module/clash/prop.py index ba685b64d3..8dcb14594b 100644 --- a/src/blenderbim/blenderbim/bim/module/clash/prop.py +++ b/src/blenderbim/blenderbim/bim/module/clash/prop.py @@ -41,7 +41,7 @@ class BIMClashProperties(PropertyGroup): blender_clash_set_a: CollectionProperty(name="Blender Clash Set A", type=StrProperty) blender_clash_set_b: CollectionProperty(name="Blender Clash Set B", type=StrProperty) clash_sets: CollectionProperty(name="Clash Sets", type=ClashSet) - should_create_clash_snapshots: BoolProperty(name="Create Snapshots", default=True) + should_create_clash_snapshots: BoolProperty(name="Create Snapshots", default=False) clash_results_path: StringProperty(name="Clash Results Path") smart_grouped_clashes_path: StringProperty(name="Smart Grouped Clashes Path") active_clash_set_index: IntProperty(name="Active Clash Set Index") diff --git a/src/ifcclash/ifcclash/collider.py b/src/ifcclash/ifcclash/collider.py index de360da1ce..62a912df5e 100644 --- a/src/ifcclash/ifcclash/collider.py +++ b/src/ifcclash/ifcclash/collider.py @@ -1,4 +1,3 @@ - # IfcClash - IFC-based clash detection. # Copyright (C) 2020, 2021 Dion Moult # @@ -23,14 +22,20 @@ import ifcopenshell class Collider: - def __init__(self): + def __init__(self, logger): + self.logger = logger self.groups = {} self.tree = ifcopenshell.geom.tree() def create_group(self, name): + self.logger.info(f"Creating group {name}") self.groups[name] = {"elements": {}, "objects": {}} def create_objects(self, name, ifc_file, iterator, elements): + import time + + start = time.time() + self.logger.info(f"Adding objects {name}") assert iterator.initialize() while True: self.tree.add_element(iterator.get_native()) @@ -38,7 +43,11 @@ class Collider: self.create_object(name, shape.guid, shape) if not iterator.next(): break + self.logger.info(f"Tree finished {time.time() - start}") + start = time.time() self.groups[name]["elements"].update({e.GlobalId: e for e in elements}) + self.logger.info(f"Element metadata finished {time.time() - start}") + start = time.time() def create_object(self, group_name, id, shape): obj = hppfcl.CollisionObject( @@ -53,6 +62,10 @@ class Collider: return self.collide_narrowphase(name1, name2, self.collide_broadphase(name1, name2)) def collide_broadphase(self, name1, name2): + import time + + start = time.time() + self.logger.info("Starting broadphase") potential_collisions = [] checked_collisions = set() for id, element in self.groups[name1]["elements"].items(): @@ -64,9 +77,14 @@ class Collider: if e.GlobalId not in checked_collisions and e.GlobalId in self.groups[name2]["elements"] ] potential_collisions.extend(pairs) + self.logger.info(f"Finished broadphase {time.time() - start}") return potential_collisions def collide_narrowphase(self, name1, name2, potential_collisions): + import time + + start = time.time() + self.logger.info("Starting narrowphase") collisions = [] for data in potential_collisions: result = hppfcl.CollisionResult() @@ -78,6 +96,7 @@ class Collider: ) if result.isCollision(): collisions.append({"id1": data["id1"], "id2": data["id2"], "collision": result}) + self.logger.info(f"Finished narrowphase {time.time() - start}") return collisions def create_transform(self, m): diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py index 172b09122a..3531820626 100644 --- a/src/ifcclash/ifcclash/ifcclash.py +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -36,7 +36,7 @@ class Clasher: self.settings = settings self.geom_settings = ifcopenshell.geom.settings() self.clash_sets = [] - self.collider = collider.Collider() + self.collider = collider.Collider(self.settings.logger) self.selector = ifcopenshell.util.selector.Selector() self.ifcs = {} @@ -83,23 +83,32 @@ class Clasher: clash_set["clashes"] = processed_results def load_ifc(self, path): + import time + + start = time.time() + self.settings.logger.info(f"Loading IFC {path}") ifc = self.ifcs.get(path, None) if not ifc: ifc = ifcopenshell.open(path) self.ifcs[path] = ifc + self.settings.logger.info(f"Loading finished {time.time() - start}") return ifc def add_collision_objects(self, name, ifc_file, mode=None, selector=None): + import time + + start = time.time() + self.settings.logger.info("Creating iterator") if not mode: elements = ifc_file.by_type("IfcElement") elif mode == "e": - exclude = self.selector.parse(ifc_file, selector) - elements = [e for e in ifc_file.by_type("IfcElement") if e not in exclude] + elements = set(ifc_file.by_type("IfcElement")) - set(self.selector.parse(ifc_file, selector)) elif mode == "i": elements = self.selector.parse(ifc_file, selector) iterator = ifcopenshell.geom.iterator( self.geom_settings, ifc_file, multiprocessing.cpu_count(), include=elements ) + self.settings.logger.info(f"Iterator creation finished {time.time() - start}") self.collider.create_objects(name, ifc_file, iterator, elements) def export(self): @@ -205,11 +214,15 @@ class Clasher: for clash_set in clash_sets: if not "clashes" in clash_set.keys(): - print(f"Skipping clash set [{clash_set['name']}] since it contains no clash results.") + self.settings.logger.info( + f"Skipping clash set [{clash_set['name']}] since it contains no clash results." + ) continue clashes = clash_set["clashes"] if len(clashes) == 0: - print(f"Skipping clash set [{clash_set['name']}] since it contains no clash results.") + self.settings.logger.info( + f"Skipping clash set [{clash_set['name']}] since it contains no clash results." + ) continue count_of_input_clashes += len(clashes) @@ -272,9 +285,8 @@ class Clasher: i += 1 count_of_final_clash_sets = len(output_clash_sets) - print( - f"Took {count_of_input_clashes} clashes in {count_of_clash_sets} clash sets and turned", - f"them into {count_of_smart_groups} smart groups in {count_of_final_clash_sets} clash sets", + self.settings.logger.info( + f"Took {count_of_input_clashes} clashes in {count_of_clash_sets} clash sets and turned them into {count_of_smart_groups} smart groups in {count_of_final_clash_sets} clash sets" ) return output_clash_sets From 2c66fbf1c4f70aacb3238feaabc16e99da15de61 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Aug 2021 20:13:24 +1000 Subject: [PATCH 143/168] Fix #1546. New feature to copy the material of the active object to selected objects. --- .../bim/module/classification/ui.py | 2 +- .../bim/module/material/__init__.py | 1 + .../bim/module/material/operator.py | 42 +++++++++++++++++++ .../blenderbim/bim/module/material/ui.py | 6 ++- .../ifcopenshell/api/material/add_material.py | 3 -- .../api/material/copy_material.py | 30 +++++++++++++ 6 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 src/ifcopenshell-python/ifcopenshell/api/material/copy_material.py diff --git a/src/blenderbim/blenderbim/bim/module/classification/ui.py b/src/blenderbim/blenderbim/bim/module/classification/ui.py index 032a7cd022..efcdc6c42e 100644 --- a/src/blenderbim/blenderbim/bim/module/classification/ui.py +++ b/src/blenderbim/blenderbim/bim/module/classification/ui.py @@ -41,7 +41,7 @@ class BIM_PT_classifications(Panel): row = self.layout.row(align=True) row.prop(self.props.classification_attributes.get("Name"), "string_value", text="", icon="ASSET_MANAGER") row.operator("bim.edit_classification", text="", icon="CHECKMARK") - row.operator("bim.disable_editing_classification", text="", icon="X") + row.operator("bim.disable_editing_classification", text="", icon="CANCEL") for attribute in self.props.classification_attributes: if attribute.name == "Name": diff --git a/src/blenderbim/blenderbim/bim/module/material/__init__.py b/src/blenderbim/blenderbim/bim/module/material/__init__.py index 83ef17c184..76d4dca153 100644 --- a/src/blenderbim/blenderbim/bim/module/material/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/material/__init__.py @@ -2,6 +2,7 @@ import bpy from . import ui, prop, operator classes = ( + operator.CopyMaterial, operator.AddMaterial, operator.RemoveMaterial, operator.AssignMaterial, diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index 506bb2cd5e..9bc102c2ce 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -754,3 +754,45 @@ class EditMaterialSetItem(bpy.types.Operator): bpy.ops.bim.disable_editing_material_set_item(obj=obj.name) return {"FINISHED"} + + +class CopyMaterial(bpy.types.Operator): + bl_idname = "bim.copy_material" + bl_label = "Copy Material" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + self.file = IfcStore.get_file() + material = ifcopenshell.util.element.get_material( + self.file.by_id(context.active_object.BIMObjectProperties.ifc_definition_id) + ) + for obj in context.selected_objects: + if obj == context.active_object: + continue + if not obj.BIMObjectProperties.ifc_definition_id: + continue + ifcopenshell.api.run( + "material.copy_material", + self.file, + **{ + "material": material, + "element": self.file.by_id(obj.BIMObjectProperties.ifc_definition_id), + }, + ) + Data.load(self.file, obj.BIMObjectProperties.ifc_definition_id) + self.set_default_material(obj, material) + return {"FINISHED"} + + def set_default_material(self, obj, material): + object_material_ids = [ + om.BIMObjectProperties.ifc_definition_id + for om in obj.data.materials + if om is not None and om.BIMObjectProperties.ifc_definition_id + ] + + if material.id() in object_material_ids: + return + obj.data.materials.append(IfcStore.get_element(material.id())) diff --git a/src/blenderbim/blenderbim/bim/module/material/ui.py b/src/blenderbim/blenderbim/bim/module/material/ui.py index d0e2b1ade4..1a803aa836 100644 --- a/src/blenderbim/blenderbim/bim/module/material/ui.py +++ b/src/blenderbim/blenderbim/bim/module/material/ui.py @@ -118,6 +118,8 @@ class BIM_PT_object_material(Panel): op.material_set_usage = self.product_data["id"] row.operator("bim.disable_editing_assigned_material", icon="CANCEL", text="") else: + if self.product_data["type"] == "IfcMaterial": + row.operator("bim.copy_material", icon="COPYDOWN", text="") row.operator("bim.enable_editing_assigned_material", icon="GREASEPENCIL", text="") row.operator("bim.unassign_material", icon="X", text="") @@ -200,7 +202,9 @@ class BIM_PT_object_material(Panel): row.prop(self.props, "profile_classes", text="") if self.props.profile_classes == "IfcParameterizedProfileDef": row.prop(self.props, "parameterized_profile_classes", text="") - op = row.operator("bim.assign_parameterized_profile", icon="GREASEPENCIL" if item["Profile"] else "ADD", text="") + op = row.operator( + "bim.assign_parameterized_profile", icon="GREASEPENCIL" if item["Profile"] else "ADD", text="" + ) op.ifc_class = self.props.parameterized_profile_classes op.material_profile = item["id"] else: diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/add_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/add_material.py index 50927d3aa9..7c9e17aece 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/add_material.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/add_material.py @@ -1,6 +1,3 @@ -import ifcopenshell - - class Usecase: def __init__(self, file, **settings): self.file = file diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/copy_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/copy_material.py new file mode 100644 index 0000000000..977d4964a0 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/material/copy_material.py @@ -0,0 +1,30 @@ +import ifcopenshell +import ifcopenshell.util.element + + +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {"material": None, "element": None} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + ifcopenshell.api.run("material.unassign_material", self.file, product=self.settings["element"]) + if self.settings["material"].is_a("IfcMaterial"): + ifcopenshell.api.run( + "material.assign_material", + self.file, + product=self.settings["element"], + type="IfcMaterial", + material=self.settings["material"], + ) + # No other material type can be copied right now. + # 1. Material lists and constituents may have shape aspects and I + # haven't implemented it yet. + # 2. Material layer and profile sets implicitly define parametric + # geometry and we have no way of guaranteeing that this constraint is + # satisfied. + # 3. Material set usages follow an unofficial constraint that all + # instances must have a usage of their type's material set. We cannot + # guarantee that constraint. From b696d302f95ee90b87f06c66ae2f2c3143b40d26 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Aug 2021 20:24:44 +1000 Subject: [PATCH 144/168] Minor fix. See #1616. --- src/blenderbim/generate_demo_library.py | 9 ++++----- .../ifcopenshell/api/material/assign_material.py | 15 ++++++++------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/blenderbim/generate_demo_library.py b/src/blenderbim/generate_demo_library.py index 610af81587..2b17a510b6 100644 --- a/src/blenderbim/generate_demo_library.py +++ b/src/blenderbim/generate_demo_library.py @@ -1,6 +1,5 @@ import ifcopenshell import ifcopenshell.api -import ifcopenshell.util.element class LibraryGenerator: @@ -66,16 +65,16 @@ class LibraryGenerator: def create_layer_type(self, ifc_class, name, thickness): element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name) - ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialLayerSet") - layer_set = ifcopenshell.util.element.get_material(element) + rel = ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialLayerSet") + layer_set = rel.RelatingMaterial layer = ifcopenshell.api.run("material.add_layer", self.file, layer_set=layer_set, material=self.material) layer.LayerThickness = thickness ifcopenshell.api.run("project.assign_declaration", self.file, definition=element, relating_context=self.project) def create_profile_type(self, ifc_class, name, profile): element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class=ifc_class, name=name) - ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialProfileSet") - profile_set = ifcopenshell.util.element.get_material(element) + rel = ifcopenshell.api.run("material.assign_material", self.file, product=element, type="IfcMaterialProfileSet") + profile_set = rel.RelatingMaterial material_profile = ifcopenshell.api.run( "material.add_profile", self.file, profile_set=profile_set, material=self.material ) diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py index 2405d63f5a..4c0377c4c8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py @@ -16,13 +16,13 @@ class Usecase: if material: ifcopenshell.api.run("material.unassign_material", self.file, product=self.settings["product"]) if self.settings["type"] == "IfcMaterial": - self.assign_ifc_material() + return self.assign_ifc_material() elif self.settings["type"] == "IfcMaterialConstituentSet": material_set = self.file.create_entity(self.settings["type"]) - self.create_material_association(material_set) + return self.create_material_association(material_set) elif self.settings["type"] == "IfcMaterialLayerSet": material_set = self.file.create_entity(self.settings["type"]) - self.create_material_association(material_set) + return self.create_material_association(material_set) elif self.settings["type"] == "IfcMaterialLayerSetUsage": element_type = ifcopenshell.util.element.get_type(self.settings["product"]) if element_type: @@ -34,10 +34,10 @@ class Usecase: else: material_set = self.file.create_entity("IfcMaterialLayerSet") material_set_usage = self.create_layer_set_usage(material_set) - self.create_material_association(material_set_usage) + return self.create_material_association(material_set_usage) elif self.settings["type"] == "IfcMaterialProfileSet": material_set = self.file.create_entity(self.settings["type"]) - self.create_material_association(material_set) + return self.create_material_association(material_set) elif self.settings["type"] == "IfcMaterialProfileSetUsage": element_type = ifcopenshell.util.element.get_type(self.settings["product"]) if element_type: @@ -51,11 +51,11 @@ class Usecase: self.update_representation_profile(material_set) material_set_usage = self.create_profile_set_usage(material_set) - self.create_material_association(material_set_usage) + return self.create_material_association(material_set_usage) elif self.settings["type"] == "IfcMaterialList": material_set = self.file.create_entity(self.settings["type"]) material_set.Materials = [self.settings["material"]] - self.create_material_association(material_set) + return self.create_material_association(material_set) def update_representation_profile(self, material_set): profile = material_set.CompositeProfile @@ -93,6 +93,7 @@ class Usecase: related_objects = list(rel.RelatedObjects) related_objects.append(self.settings["product"]) rel.RelatedObjects = related_objects + return rel def create_material_association(self, relating_material): return self.file.create_entity( From 7abccbd713be70bd9720d5d5e26bc156fa0c05ff Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 8 Aug 2021 20:56:31 +1000 Subject: [PATCH 145/168] Deleting a material set from a type now also purges usages from type instances --- .../bim/module/material/operator.py | 2 +- .../api/material/unassign_material.py | 22 ++++++++++++++++--- .../ifcopenshell/api/project/append_asset.py | 7 +++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index 9bc102c2ce..01ffc3cd22 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -157,7 +157,7 @@ class UnassignMaterial(bpy.types.Operator): self.file, **{"product": self.file.by_id(obj.BIMObjectProperties.ifc_definition_id)}, ) - Data.load(IfcStore.get_file(), obj.BIMObjectProperties.ifc_definition_id) + Data.purge() return {"FINISHED"} diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/unassign_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/unassign_material.py index 09c625a900..d01f3a78f8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/unassign_material.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/unassign_material.py @@ -1,4 +1,5 @@ import ifcopenshell +import ifcopenshell.util.element class Usecase: @@ -9,11 +10,26 @@ class Usecase: self.settings[key] = value def execute(self): + if self.settings["product"].is_a("IfcTypeObject"): + material = ifcopenshell.util.element.get_material(self.settings["product"]) + if material.is_a() in ["IfcMaterialLayerSet", "IfcMaterialProfileSet"]: + for inverse in self.file.get_inverse(material): + if self.file.schema == "IFC2X3": + if not inverse.is_a("IfcMaterialLayerSetUsage"): + continue + for inverse2 in self.file.get_inverse(inverse): + if inverse2.is_a("IfcRelAssociatesMaterial"): + self.file.remove(inverse2) + else: + if not inverse.is_a("IfcMaterialUsageDefinition"): + continue + for rel in inverse.AssociatedTo: + self.file.remove(rel) + self.file.remove(inverse) + for rel in self.settings["product"].HasAssociations: if rel.is_a("IfcRelAssociatesMaterial"): - if rel.RelatingMaterial.is_a("IfcMaterialLayerSetUsage") or rel.RelatingMaterial.is_a( - "IfcMaterialProfileSetUsage" - ): + if rel.RelatingMaterial.is_a() in ["IfcMaterialLayerSetUsage", "IfcMaterialProfileSetUsage"]: self.file.remove(rel.RelatingMaterial) if len(rel.RelatedObjects) == 1: self.file.remove(rel) diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py index 6c0668beb3..30c7bfa36c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py @@ -11,7 +11,12 @@ class Usecase: def execute(self): self.added_elements = set() - if self.settings["element"].is_a("IfcTypeProduct") and not self.file.by_guid(self.settings["element"].GlobalId): + if self.settings["element"].is_a("IfcTypeProduct"): + try: + self.file.by_guid(self.settings["element"].GlobalId) + return + except: + pass return self.append_type_product() def append_type_product(self): From 2213b4e212a983d0071ad0adca78fd0cf24ea3bf Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 8 Aug 2021 18:06:58 +0200 Subject: [PATCH 146/168] --elevation-ref-guid setElevationRefGuid --- src/ifcconvert/IfcConvert.cpp | 11 ++++++++--- src/serializers/SvgSerializer.cpp | 7 ++++++- src/serializers/SvgSerializer.h | 9 ++++++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index 7df682e61c..e0d839c2c3 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -354,7 +354,7 @@ int main(int argc, char** argv) { short precision; double section_height; std::string svg_scale, svg_center; - std::string section_ref, elevation_ref; + std::string section_ref, elevation_ref, elevation_ref_guid; // "none", "full" or "left" std::string storey_height_display; SvgSerializer::storey_height_display_types svg_storey_height_display = SvgSerializer::SH_NONE; @@ -376,9 +376,11 @@ int main(int argc, char** argv) { "When using --scale, specifies the location in the range [0 1]x[0 1] around which" "to center the drawings. Example 0.5x0.5 (default).") ("section-ref", po::value(§ion_ref), - "Element at which vertical cross sections should be created") + "Element at which cross sections should be created") ("elevation-ref", po::value(&elevation_ref), - "Element at which vertical elevations should be created") + "Element at which drawings should be created") + ("elevation-ref-guid", po::value(&elevation_ref_guid), + "Element guids at which drawings should be created") ("auto-section", "Creates SVG cross section drawings automatically based on model extents") ("auto-elevation", @@ -1003,6 +1005,9 @@ int main(int argc, char** argv) { if (vmap.count("elevation-ref")) { static_cast(serializer.get())->setElevationRef(elevation_ref); } + if (vmap.count("elevation-ref-guid")) { + static_cast(serializer.get())->setElevationRefGuid(elevation_ref_guid); + } if (vmap.count("auto-section")) { static_cast(serializer.get())->setAutoSection(true); } diff --git a/src/serializers/SvgSerializer.cpp b/src/serializers/SvgSerializer.cpp index 2a5c18dc6e..9e1ec70b27 100644 --- a/src/serializers/SvgSerializer.cpp +++ b/src/serializers/SvgSerializer.cpp @@ -543,7 +543,12 @@ void SvgSerializer::write(const IfcGeom::BRepElement* brep_obj) { const gp_Trsf& trsf = brep_obj->transformation().data(); const bool is_section = (section_ref_ && object_type && *section_ref_ == *object_type); - const bool is_elevation = (elevation_ref_ && object_type && *elevation_ref_ == *object_type); + bool is_elevation = false; + if (elevation_ref_ && object_type) { + is_elevation = *elevation_ref_ == *object_type; + } else if (elevation_ref_guid_) { + is_elevation = *elevation_ref_guid_ == brep_obj->guid(); + } if (is_section || is_elevation) { BRepBuilderAPI_Transform make_transform_global(compound_local, trsf, true); diff --git a/src/serializers/SvgSerializer.h b/src/serializers/SvgSerializer.h index 957bc1aa90..df3cd62503 100644 --- a/src/serializers/SvgSerializer.h +++ b/src/serializers/SvgSerializer.h @@ -167,7 +167,7 @@ protected: float_item_list xcoords, ycoords, radii; size_t xcoords_begin, ycoords_begin, radii_begin; - boost::optional section_ref_, elevation_ref_; + boost::optional section_ref_, elevation_ref_, elevation_ref_guid_; std::list element_buffer_; @@ -242,8 +242,15 @@ public: void setSectionRef(const boost::optional& s) { section_ref_ = s; } + void setElevationRef(const boost::optional& s) { elevation_ref_ = s; + elevation_ref_guid_ = boost::none; + } + + void setElevationRefGuid(const boost::optional& s) { + elevation_ref_ = boost::none; + elevation_ref_guid_ = s; } void setAutoSection(bool b) { From 92ca549b0bbb92d54cc6a6aeb754fa83e401d3f2 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 8 Aug 2021 18:10:19 +0200 Subject: [PATCH 147/168] setNoCSS() --- src/serializers/SvgSerializer.cpp | 76 ++++++++++++++++--------------- src/serializers/SvgSerializer.h | 6 +++ 2 files changed, 46 insertions(+), 36 deletions(-) diff --git a/src/serializers/SvgSerializer.cpp b/src/serializers/SvgSerializer.cpp index 9e1ec70b27..6c57a0ec71 100644 --- a/src/serializers/SvgSerializer.cpp +++ b/src/serializers/SvgSerializer.cpp @@ -2005,45 +2005,49 @@ void SvgSerializer::doWriteHeader() { " \n" " \n" " \n" - " \n" - " \n"; } - - svg_file << - " ]]>\n" - " \n"; } namespace { diff --git a/src/serializers/SvgSerializer.h b/src/serializers/SvgSerializer.h index df3cd62503..2145fc0407 100644 --- a/src/serializers/SvgSerializer.h +++ b/src/serializers/SvgSerializer.h @@ -157,6 +157,7 @@ protected: bool auto_section_, auto_elevation_; bool use_namespace_, use_hlr_poly_, always_project_, polygonal_; bool emit_building_storeys_; + bool no_css_; IfcParse::IfcFile* file; IfcUtil::IfcBaseEntity* storey_; @@ -201,6 +202,7 @@ public: , always_project_(false) , polygonal_(false) , emit_building_storeys_(true) + , no_css_(false) , file(0) , storey_(0) , xcoords_begin(0) @@ -282,6 +284,10 @@ public: emit_building_storeys_ = !b; } + void setNoCSS(bool b) { + no_css_ = b; + } + void setScale(double s) { scale_ = s; } void setDrawingCenter(double x, double y) { center_x_ = x; center_y_ = y; From 3cd47cdd0f391037531e6fd8925ad428818f8069 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 8 Aug 2021 20:20:23 +0200 Subject: [PATCH 148/168] svg skip empty --- src/serializers/SvgSerializer.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/serializers/SvgSerializer.cpp b/src/serializers/SvgSerializer.cpp index 6c57a0ec71..a2b4a8749d 100644 --- a/src/serializers/SvgSerializer.cpp +++ b/src/serializers/SvgSerializer.cpp @@ -1965,6 +1965,11 @@ void SvgSerializer::finalize() { svg_file << " first]) << ">\n"; } } + + if (it->second.second.empty()) { + continue; + } + svg_file << " second.first << ">\n"; std::vector::const_iterator jt; for (jt = it->second.second.begin(); jt != it->second.second.end(); ++jt) { From 42ae4f9a3c52b1463bdea513efbf9df96d5a74f6 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 8 Aug 2021 20:21:01 +0200 Subject: [PATCH 149/168] add `cut' to classname --- src/serializers/SvgSerializer.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/serializers/SvgSerializer.cpp b/src/serializers/SvgSerializer.cpp index a2b4a8749d..ab4c5c0d0c 100644 --- a/src/serializers/SvgSerializer.cpp +++ b/src/serializers/SvgSerializer.cpp @@ -1201,11 +1201,17 @@ void SvgSerializer::write(const geometry_data& data) { emitted = true; + auto svg_name = data.svg_name; + if (object_type.size()) { + // prefix class to indicate this is a cut element + boost::replace_all(svg_name, "class=\"", "class=\"cut "); + } + if (po == nullptr) { if (storey) { - po = &start_path(pln, storey, data.svg_name); + po = &start_path(pln, storey, svg_name); } else { - po = &start_path(pln, drawing_name, data.svg_name); + po = &start_path(pln, drawing_name, svg_name); } } From 83a87459590d43782d3ab8e4391a879033b18923 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 8 Aug 2021 20:40:15 +0200 Subject: [PATCH 150/168] --svg-no-css --- src/ifcconvert/IfcConvert.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index e0d839c2c3..90e9139bad 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -399,6 +399,7 @@ int main(int argc, char** argv) { ("svg-project", "Always enable hidden line rendering instead of only on elevations") ("svg-without-storeys", "Don't emit drawings for building storeys") + ("svg-no-css", "Don't emit CSS style declarations") ("door-arcs", "Draw door openings arcs for IfcDoor elements") ("section-height", po::value(§ion_height), "Specifies the cut section height for SVG 2D geometry.") @@ -1019,6 +1020,7 @@ int main(int argc, char** argv) { static_cast(serializer.get())->setPolygonal(vmap.count("svg-write-poly") > 0); static_cast(serializer.get())->setAlwaysProject(vmap.count("svg-project") > 0); static_cast(serializer.get())->setWithoutStoreys(vmap.count("svg-without-storeys") > 0); + static_cast(serializer.get())->setNoCSS(vmap.count("svg-no-css") > 0); if (relative_center_x && relative_center_y) { static_cast(serializer.get())->setDrawingCenter(*relative_center_x, *relative_center_y); } From 21e064acafff91c348d299240583872381489f09 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 8 Aug 2021 21:16:30 +0200 Subject: [PATCH 151/168] fixes --- src/serializers/SvgSerializer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/serializers/SvgSerializer.cpp b/src/serializers/SvgSerializer.cpp index ab4c5c0d0c..c7e679e793 100644 --- a/src/serializers/SvgSerializer.cpp +++ b/src/serializers/SvgSerializer.cpp @@ -668,7 +668,7 @@ void SvgSerializer::write(const IfcGeom::BRepElement* brep_obj) { // @todo is it correct to call nameElement() here with a single storey (what if this element spans multiple?) geometry_data data{ compound_local, dash_arrays, trsf, brep_obj->product(), storey, elev, brep_obj->name(), nameElement(storey, brep_obj) }; - if (auto_section_ || auto_elevation_ || section_ref_ || elevation_ref_) { + if (auto_section_ || auto_elevation_ || section_ref_ || elevation_ref_ || elevation_ref_guid_) { element_buffer_.push_back(data); } @@ -1972,6 +1972,8 @@ void SvgSerializer::finalize() { } } + previous = it->first; + if (it->second.second.empty()) { continue; } @@ -1982,7 +1984,6 @@ void SvgSerializer::finalize() { svg_file << jt->str(); } svg_file << " \n"; - previous = it->first; } if (previous) { From a83952cec2ed2a4126ef328dc83af7a97df3cfaf Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 9 Aug 2021 11:17:10 +1000 Subject: [PATCH 152/168] You can now import materials from a project library --- .../blenderbim/bim/module/project/operator.py | 25 +++++++++++++++---- .../ifcopenshell/api/project/append_asset.py | 7 ++++++ .../api/project/assign_declaration.py | 3 +++ 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index 4377d085c4..92c493a91d 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -172,9 +172,10 @@ class RefreshLibrary(bpy.types.Operator): self.props.active_library_element = "" types = IfcStore.library_file.wrapped_data.types_with_super() - if "IfcTypeProduct" in types: - new = self.props.library_elements.add() - new.name = "IfcTypeProduct" + for importable_type in ["IfcTypeProduct", "IfcMaterial"]: + if importable_type in types: + new = self.props.library_elements.add() + new.name = importable_type return {"FINISHED"} @@ -201,7 +202,9 @@ class ChangeLibraryElement(bpy.types.Operator): new.ifc_definition_id = element.id() if IfcStore.library_file.schema == "IFC2X3" or not IfcStore.library_file.by_type("IfcProjectLibrary"): new.is_declared = False - elif element.HasContext and element.HasContext[0].RelatingContext.is_a("IfcProjectLibrary"): + elif getattr(element, "HasContext", None) and element.HasContext[0].RelatingContext.is_a( + "IfcProjectLibrary" + ): new.is_declared = True else: for ifc_class in ifc_classes: @@ -328,10 +331,22 @@ class AppendLibraryElement(bpy.types.Operator): ) if not element: return {"FINISHED"} - self.import_type_from_ifc(element, context) + if element.is_a("IfcTypeProduct"): + self.import_type_from_ifc(element, context) + elif element.is_a("IfcMaterial"): + self.import_material_from_ifc(element, context) blenderbim.bim.handler.purge_module_data() return {"FINISHED"} + def import_material_from_ifc(self, element, context): + self.file = IfcStore.get_file() + logger = logging.getLogger("ImportIFC") + ifc_import_settings = import_ifc.IfcImportSettings.factory(context, IfcStore.path, logger) + ifc_importer = import_ifc.IfcImporter(ifc_import_settings) + ifc_importer.file = self.file + blender_material = ifc_importer.create_material(element) + self.import_material_styles(blender_material, element, ifc_importer) + def import_type_from_ifc(self, element, context): self.file = IfcStore.get_file() logger = logging.getLogger("ImportIFC") diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py index 30c7bfa36c..9088f11b3b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py @@ -18,6 +18,13 @@ class Usecase: except: pass return self.append_type_product() + elif self.settings["element"].is_a("IfcMaterial"): + if [e for e in self.file.by_type("IfcMaterial") if e.Name == self.settings["element"].Name]: + return + return self.append_material() + + def append_material(self): + return self.file.add(self.settings["element"]) def append_type_product(self): self.whitelisted_inverse_attributes = { diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/assign_declaration.py b/src/ifcopenshell-python/ifcopenshell/api/project/assign_declaration.py index ec476df3f2..19a6eab048 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/assign_declaration.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/assign_declaration.py @@ -17,6 +17,9 @@ class Usecase: if self.settings["relating_context"].Declares: declares = self.settings["relating_context"].Declares[0] + if not hasattr(self.settings["definition"], "HasContext"): + return + has_context = None if self.settings["definition"].HasContext: has_context = self.settings["definition"].HasContext[0] From 6899f9fa8fae3c54f9084c81136765b6159a6a19 Mon Sep 17 00:00:00 2001 From: bosonprojets Date: Mon, 9 Aug 2021 03:13:26 +0100 Subject: [PATCH 153/168] Feature to enable assigning Construction Resources to Tasks --- .../bim/module/sequence/__init__.py | 3 + .../bim/module/sequence/operator.py | 79 ++++++++++++++++++- .../blenderbim/bim/module/sequence/prop.py | 9 +++ .../blenderbim/bim/module/sequence/ui.py | 21 +++++ .../ifcopenshell/api/resource/add_resource.py | 2 +- .../ifcopenshell/api/resource/data.py | 15 +++- 6 files changed, 125 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/sequence/__init__.py b/src/blenderbim/blenderbim/bim/module/sequence/__init__.py index 553e9f4d77..1fae8dd723 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/__init__.py @@ -76,6 +76,9 @@ classes = ( operator.AddTaskColumn, operator.RemoveTaskColumn, operator.SetTaskSortColumn, + operator.EnableAssigningResources, + operator.AssignResource, + operator.UnassignResource, prop.WorkPlan, prop.BIMWorkPlanProperties, prop.Task, diff --git a/src/blenderbim/blenderbim/bim/module/sequence/operator.py b/src/blenderbim/blenderbim/bim/module/sequence/operator.py index 30ac8f770e..c5edca95b1 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/operator.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/operator.py @@ -18,6 +18,7 @@ from dateutil import parser, relativedelta from blenderbim.bim.ifc import IfcStore from bpy_extras.io_utils import ImportHelper from ifcopenshell.api.sequence.data import Data +from ifcopenshell.api.resource.data import Data as ResourceData class AddWorkPlan(bpy.types.Operator): @@ -534,7 +535,7 @@ class EnableEditingTaskTime(bpy.types.Operator): def add_task_time(self): task_time = ifcopenshell.api.run("sequence.add_task_time", self.file, task=self.file.by_id(self.task)) - Data.load(IfcStore.get_file()) + Data.load(self.file) return task_time @@ -1958,3 +1959,79 @@ class SetTaskSortColumn(bpy.types.Operator): self.props.sort_column = self.column bpy.ops.bim.enable_editing_tasks(work_schedule=self.props.active_work_schedule_id) return {"FINISHED"} + + +class EnableAssigningResources(bpy.types.Operator): + bl_idname = "bim.enable_assigning_resources" + bl_label = "Enable Assigning Resources To Tasks" + bl_options = {"REGISTER", "UNDO"} + task: bpy.props.IntProperty() + + def execute(self, context): + self.props = context.scene.BIMWorkScheduleProperties + self.props.active_task_id = self.task + self.props.editing_task_type = "RESOURCES" + return {"FINISHED"} + + +class AssignResource(bpy.types.Operator): + bl_idname = "bim.assign_resource" + bl_label = "Assign Resource" + bl_options = {"REGISTER", "UNDO"} + task: bpy.props.IntProperty() + parent_resource: bpy.props.IntProperty() + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + self.file = IfcStore.get_file() + resource = ifcopenshell.api.run( + "resource.add_resource", + self.file, + **{ + "parent_resource": self.file.by_id(self.parent_resource), + "ifc_class": self.file.by_id(self.parent_resource).is_a(), + "name": self.file.by_id(self.parent_resource).Name + ": " + self.file.by_id(self.task).Name, + }, + ) + ifcopenshell.api.run( + "sequence.assign_process", + self.file, + **{ + "related_object": resource, + "relating_process": self.file.by_id(self.task), + }, + ) + Data.load(self.file) + ResourceData.load(self.file) + bpy.ops.bim.load_resources() + return {"FINISHED"} + +class UnassignResource(bpy.types.Operator): + bl_idname = "bim.unassign_resource" + bl_label = "Unassign Resource" + bl_options = {"REGISTER", "UNDO"} + task: bpy.props.IntProperty() + resource: bpy.props.IntProperty() + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + self.file = IfcStore.get_file() + ifcopenshell.api.run( + "sequence.unassign_process", + self.file, + related_object=self.file.by_id(self.resource), + relating_process=self.file.by_id(self.task), + ) + ifcopenshell.api.run( + "resource.remove_resource", + self.file, + resource=self.file.by_id(self.resource), + ) + Data.load(self.file) + ResourceData.load(self.file) + bpy.ops.bim.load_resources() + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/sequence/prop.py b/src/blenderbim/blenderbim/bim/module/sequence/prop.py index 02e6e6cbde..348306e66c 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/prop.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/prop.py @@ -3,6 +3,7 @@ import ifcopenshell.api import ifcopenshell.util.attribute from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.sequence.data import Data +from ifcopenshell.api.resource.data import Data as ResourceData from blenderbim.bim.prop import StrProperty, Attribute from dateutil import parser from bpy.types import PropertyGroup @@ -208,6 +209,13 @@ def updateVisualisationStartFinish(self, context, startfinish): setattr(self, startfinish, canonical_value) +def getResources(self, context): + self.file = IfcStore.get_file() + return [(str(k), v["Name"], "") for k, v in ResourceData.resources.items() + if self.file.by_id(k).Nests and self.file.by_id(k).Nests[0].RelatingObject.HasContext + ] + + class Task(PropertyGroup): name: StringProperty(name="Name", update=updateTaskName) identification: StringProperty(name="Identification", update=updateTaskIdentification) @@ -297,6 +305,7 @@ class BIMWorkScheduleProperties(PropertyGroup): name="Speed Type", default="FRAME_SPEED", ) + resources: EnumProperty(items=getResources, name="Resources") class BIMTaskTreeProperties(PropertyGroup): diff --git a/src/blenderbim/blenderbim/bim/module/sequence/ui.py b/src/blenderbim/blenderbim/bim/module/sequence/ui.py index 7c6148731c..d7dd580dd7 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/ui.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/ui.py @@ -3,6 +3,7 @@ import blenderbim.bim.helper from bpy.types import Panel, UIList from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.sequence.data import Data +from ifcopenshell.api.resource.data import Data as ResourceData import blenderbim.bim.module.sequence.helper as helper from datetime import datetime @@ -214,6 +215,8 @@ class BIM_PT_work_schedules(Panel): self.draw_editable_task_sequence_ui() elif self.props.active_task_time_id and self.props.editing_task_type == "TASKTIME": self.draw_editable_task_time_attributes_ui() + elif self.props.active_task_id and self.props.editing_task_type == "RESOURCES": + self.draw_editable_task_resource_ui() def draw_editable_task_sequence_ui(self): task = Data.tasks[self.props.active_task_id] @@ -287,6 +290,23 @@ class BIM_PT_work_schedules(Panel): def draw_editable_task_time_attributes_ui(self): blenderbim.bim.helper.draw_attributes(self.props.task_time_attributes, self.layout) + def draw_editable_task_resource_ui(self): + row = self.layout.row(align=True) + row.prop(self.props, "resources", text="") + op = row.operator("bim.assign_resource", text="", icon="ADD") + op.parent_resource = int(self.props.resources) + op.task = self.props.active_task_id + task = Data.tasks[self.props.active_task_id] + ResourceData.load(IfcStore.get_file()) + + for related_obect_id in task["OperatesOn"]: + resource = ResourceData.resources[related_obect_id] + row = self.layout.row(align=True) + row.label(text=resource["Name"], icon="COMMUNITY") + op = row.operator("bim.unassign_resource", text="", icon="X") + op.task = self.props.active_task_id + op.resource = related_obect_id + class BIM_UL_task_columns(UIList): def draw_item(self, context, layout, data, item, icon, active_data, active_propname): @@ -416,6 +436,7 @@ class BIM_UL_tasks(UIList): row.operator( "bim.enable_editing_task_calendar", text="", icon="VIEW_ORTHO" ).task = item.ifc_definition_id + row.operator("bim.enable_assigning_resources", text="", icon="COMMUNITY").task = item.ifc_definition_id row.operator("bim.enable_editing_task", text="", icon="GREASEPENCIL").task = item.ifc_definition_id row.operator("bim.add_task", text="", icon="ADD").task = item.ifc_definition_id row.operator("bim.remove_task", text="", icon="X").task = item.ifc_definition_id diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource.py b/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource.py index 3ef741ae6c..63c9be21c7 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource.py @@ -19,7 +19,7 @@ class Usecase: self.file, ifc_class=self.settings["ifc_class"], predefined_type=self.settings["predefined_type"], - name=self.settings["name"], + name=self.settings["name"] or "Unammed", ) # TODO: this is an ambiguity by buildingSMART: Can we nest an IfcCrewResource under an IfcCrewResource ? # https://forums.buildingsmart.org/t/what-are-allowed-to-be-root-level-construction-resources/3550 diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/data.py b/src/ifcopenshell-python/ifcopenshell/api/resource/data.py index eec9223e6f..af068a88a4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/data.py @@ -4,20 +4,31 @@ class Data: @classmethod def purge(cls): + cls.is_loaded = False cls.resources = {} @classmethod def load(cls, file): + cls._file = file + if not cls._file: + return + cls.load_resources() + cls.is_loaded=True + + @classmethod + def load_resources(cls): cls.resources = {} - for resource in file.by_type("IfcResource"): + for resource in cls._file.by_type("IfcResource"): data = resource.get_info() del data["OwnerHistory"] data["IsNestedBy"] = [] for rel in resource.IsNestedBy: [data["IsNestedBy"].append(o.id()) for o in rel.RelatedObjects] + data["Nests"] = [] + for rel in resource.Nests: + [data["Nests"].append(rel.RelatingObject.id())] data["ResourceOf"] = [] for rel in resource.ResourceOf: [data["ResourceOf"].append(o.id()) for o in rel.RelatedObjects] data["HasContext"] = resource.HasContext[0].RelatingContext.id() if resource.HasContext else None cls.resources[resource.id()] = data - cls.is_loaded=True From 09098c1bdc268dfd8cb7baa4d500b894a5e2a6af Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 9 Aug 2021 16:56:30 +1000 Subject: [PATCH 154/168] New Ifc5D utility for converting and generating analysis of IFC cost data --- README.md | 1 + src/ifc4d/README.md | 10 + src/ifc4d/ifc4d/msp2ifc.py | 58 +- src/ifc4d/ifc4d/p62ifc.py | 19 + src/ifc5d/COPYING | 621 ++++++++++++++++++ src/ifc5d/COPYING.LESSER | 165 +++++ src/ifc5d/README.md | 18 + src/ifc5d/ifc5d/csv2ifc.py | 89 +++ src/ifc5d/test.csv | 10 + .../ifcopenshell/util/unit.py | 16 + 10 files changed, 980 insertions(+), 27 deletions(-) create mode 100644 src/ifc5d/COPYING create mode 100644 src/ifc5d/COPYING.LESSER create mode 100644 src/ifc5d/README.md create mode 100644 src/ifc5d/ifc5d/csv2ifc.py create mode 100644 src/ifc5d/test.csv diff --git a/README.md b/README.md index 5b7682f829..a28b3a58df 100644 --- a/README.md +++ b/README.md @@ -231,6 +231,7 @@ blenderbim | GPL-3.0-or-later bsdd | LGPL-3.0-or-later ifc2ca | LGPL-3.0-or-later ifc4d | LGPL-3.0-or-later +ifc5d | LGPL-3.0-or-later ifcbimtester | LGPL-3.0-or-later ifcblender | LGPL-3.0-or-later\* ifccityjson | LGPL-3.0-or-later diff --git a/src/ifc4d/README.md b/src/ifc4d/README.md index 5fa0d61392..c841b270ea 100644 --- a/src/ifc4d/README.md +++ b/src/ifc4d/README.md @@ -4,3 +4,13 @@ Ifc4D contains a series of utilities for converting to and from various 4D softw - Microsoft Project to IFC - Oracle Primavera 6 (P6) to IFC + +Planned (would you like to contribute? Please reach out!): + + - IFC to Microsoft Project + - IFC to Oracle Primavera 6 (P6) + - Asta Powerproject to IFC + - IFC to Asta Powerproject + - LibreProject to IFC + - IFC to LibreProject + - IFC to Gantt diff --git a/src/ifc4d/ifc4d/msp2ifc.py b/src/ifc4d/ifc4d/msp2ifc.py index 29cc744d8a..dee30564ef 100644 --- a/src/ifc4d/ifc4d/msp2ifc.py +++ b/src/ifc4d/ifc4d/msp2ifc.py @@ -1,10 +1,29 @@ + +# Ifc4D - IFC scheduling utility +# Copyright (C) 2021 Dion Moult +# +# This file is part of Ifc4D. +# +# Ifc4D is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc4D 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc4D. If not, see . + import datetime from datetime import timedelta import ifcopenshell import ifcopenshell.api import ifcopenshell.util.date import xml.etree.ElementTree as ET -import blenderbim.bim.ifc + class MSP2Ifc: def __init__(self): @@ -18,15 +37,6 @@ class MSP2Ifc: self.root_activites = [] self.tasks = {} self.relationships = {} - self.day_map = { - "1": 1, - "2": 2, - "3": 3, - "4": 4, - "5": 5, - "6": 6, - "7": 7, - } def execute(self): self.parse_xml() @@ -42,7 +52,6 @@ class MSP2Ifc: self.parse_task_xml(project) self.parse_calendar_xml(project) - def parse_relationship_xml(self, task): relationships = {} id = 0 @@ -50,7 +59,7 @@ class MSP2Ifc: for relationship in task.findall("pr:PredecessorLink", self.ns): relationships[id] = { "PredecessorTask": relationship.find("pr:PredecessorUID", self.ns).text, - "Type": relationship.find("pr:Type", self.ns).text + "Type": relationship.find("pr:Type", self.ns).text, } id += 1 return relationships @@ -64,7 +73,7 @@ class MSP2Ifc: outline_level = int(task.find("pr:OutlineLevel", self.ns).text) if outline_level != 0: - parent_task = self.tasks[self.outline_parents[outline_level-1]] + parent_task = self.tasks[self.outline_parents[outline_level - 1]] parent_task["subtasks"].append(task_id) self.outline_level = outline_level self.outline_parents[outline_level] = task_id @@ -75,7 +84,7 @@ class MSP2Ifc: "OutlineLevel": outline_level, "Start": datetime.datetime.fromisoformat(task.find("pr:Start", self.ns).text), "Finish": datetime.datetime.fromisoformat(task.find("pr:Finish", self.ns).text), - "Duration": ifcopenshell.util.date.ifc2datetime(task.find("pr:Duration", self.ns).text), + "Duration": ifcopenshell.util.date.ifc2datetime(task.find("pr:Duration", self.ns).text), "Priority": task.find("pr:Priority", self.ns).text, "CalendarUID": task.find("pr:CalendarUID", self.ns).text, "PredecessorTasks": relationships if relationships else None, @@ -83,14 +92,11 @@ class MSP2Ifc: "ifc": None, } - def parse_calendar_xml(self, project): for calendar in project.find("pr:Calendars", self.ns).findall("pr:Calendar", self.ns): calendar_id = calendar.find("pr:UID", self.ns).text week_days = [] - for week_day in calendar.find("pr:WeekDays", self.ns).findall( - "pr:WeekDay", self.ns - ): + for week_day in calendar.find("pr:WeekDays", self.ns).findall("pr:WeekDay", self.ns): working_times = [] if week_day.find("pr:WorkingTimes", self.ns): for working_time in week_day.find("pr:WorkingTimes", self.ns).findall("pr:WorkingTime", self.ns): @@ -117,7 +123,7 @@ class MSP2Ifc: def create_ifc(self): if not self.file: - self.file = self.create_boilerplate_ifc() + self.create_boilerplate_ifc() if not self.work_plan: self.work_plan = ifcopenshell.api.run("sequence.add_work_plan", self.file) work_schedule = self.create_work_schedule() @@ -142,9 +148,7 @@ class MSP2Ifc: def create_calendars(self): for calendar in self.calendars.values(): - calendar["ifc"] = ifcopenshell.api.run( - "sequence.add_work_calendar", self.file, name=calendar["Name"] - ) + calendar["ifc"] = ifcopenshell.api.run("sequence.add_work_calendar", self.file, name=calendar["Name"]) self.process_working_week(calendar["StandardWorkWeek"], calendar["ifc"]) def create_task(self, task, work_schedule=None, parent_task=None): @@ -188,12 +192,12 @@ class MSP2Ifc: "sequence.add_work_time", self.file, work_calendar=calendar, time_type="WorkingTimes" ) - weekday_component = [self.day_map[day["DayType"]]] + weekday_component = [int(day["DayType"])] for day2 in week: if day["DayType"] == day2["DayType"]: continue if day["WorkingTimes"] == day2["WorkingTimes"]: - weekday_component.append(self.day_map[day2["DayType"]]) + weekday_component.append(int(day2["DayType"])) # Don't process the next day, as we can group it day2["ifc"] = day["ifc"] @@ -238,13 +242,13 @@ class MSP2Ifc: rel_sequence = ifcopenshell.api.run( "sequence.assign_sequence", self.file, - related_process = task["ifc"], - relating_process = self.tasks[predecessor["PredecessorTask"]]["ifc"] + related_process=task["ifc"], + relating_process=self.tasks[predecessor["PredecessorTask"]]["ifc"], ) if predecessor["Type"]: ifcopenshell.api.run( "sequence.edit_sequence", self.file, rel_sequence=rel_sequence, - attributes={"SequenceType": self.sequence_type_map[predecessor["Type"]]} + attributes={"SequenceType": self.sequence_type_map[predecessor["Type"]]}, ) diff --git a/src/ifc4d/ifc4d/p62ifc.py b/src/ifc4d/ifc4d/p62ifc.py index 09295a2f68..5787b8a1ad 100644 --- a/src/ifc4d/ifc4d/p62ifc.py +++ b/src/ifc4d/ifc4d/p62ifc.py @@ -1,3 +1,22 @@ + +# Ifc4D - IFC scheduling utility +# Copyright (C) 2021 Dion Moult +# +# This file is part of Ifc4D. +# +# Ifc4D is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc4D 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc4D. If not, see . + import math import datetime import ifcopenshell diff --git a/src/ifc5d/COPYING b/src/ifc5d/COPYING new file mode 100644 index 0000000000..810fce6e9b --- /dev/null +++ b/src/ifc5d/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/src/ifc5d/COPYING.LESSER b/src/ifc5d/COPYING.LESSER new file mode 100644 index 0000000000..0a041280bd --- /dev/null +++ b/src/ifc5d/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/src/ifc5d/README.md b/src/ifc5d/README.md new file mode 100644 index 0000000000..d1a014a114 --- /dev/null +++ b/src/ifc5d/README.md @@ -0,0 +1,18 @@ +# ifc5d + +Ifc5D is a collection of utilities of manipulating cost-related data to and from +formats, reports, and optimisation engines. + +Currently supported: + + - CSV to IFC + +Planned (would you like to contribute? Please reach out!): + + - IFC to CSV + - IFC to PDF + - IFC to ODS + - IFC to XLSX + - ODS to CSV + - XLSX to CSV + - IFC to Graph diff --git a/src/ifc5d/ifc5d/csv2ifc.py b/src/ifc5d/ifc5d/csv2ifc.py new file mode 100644 index 0000000000..4f6d16a2a1 --- /dev/null +++ b/src/ifc5d/ifc5d/csv2ifc.py @@ -0,0 +1,89 @@ + +# Ifc5D - IFC costing utility +# Copyright (C) 2021 Dion Moult +# +# This file is part of Ifc5D. +# +# Ifc5D is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ifc5D 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 +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Ifc5D. If not, see . + +import csv +import ifcopenshell +import ifcopenshell.api +import ifcopenshell.util.unit + + +class Csv2Ifc: + def __init__(self): + self.csv = None + self.file = None + self.cost_items = [] + self.cost_schedule = None + + def execute(self): + self.parse_csv() + self.create_ifc() + + def parse_csv(self): + self.parents = {} + with open(self.csv, "r") as csv_file: + reader = csv.reader(csv_file) + for row in reader: + if not row[0]: + continue + cost_data = self.get_row_cost_data(row) + hierarchy_key = int(row[0]) + if hierarchy_key == 1: + self.cost_items.append(cost_data) + else: + self.parents[hierarchy_key - 1]["children"].append(cost_data) + self.parents[hierarchy_key] = cost_data + + def get_row_cost_data(self, row): + return { + "Name": str(row[1]) if row[1] else None, + "CostQuantities": float(row[2]) if row[2] else None, + "CostQuantitiesUnit": str(row[3]) if row[3] else None, + "CostValues": float(row[4]) if row[4] else None, + "children": [], + } + + def create_ifc(self): + if not self.file: + self.create_boilerplate_ifc() + if not self.cost_schedule: + self.cost_schedule = ifcopenshell.api.run("cost.add_cost_schedule", self.file, name="CSV Import") + self.create_cost_items(self.cost_items) + + def create_cost_items(self, cost_items, parent=None): + for cost_item in cost_items: + if parent is None: + cost_item["ifc"] = ifcopenshell.api.run( + "cost.add_cost_item", self.file, cost_schedule=self.cost_schedule + ) + else: + cost_item["ifc"] = ifcopenshell.api.run("cost.add_cost_item", self.file, cost_item=parent) + cost_item["ifc"].Name = cost_item["Name"] + if cost_item["CostValues"]: + cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) + cost_value.AppliedValue = self.file.createIfcReal(cost_item["CostValues"]) + if cost_item["CostQuantities"]: + quantity_class = ifcopenshell.util.unit.get_symbol_quantity_class(cost_item["CostQuantitiesUnit"]) + quantity = ifcopenshell.api.run( + "cost.add_cost_item_quantity", self.file, cost_item=cost_item["ifc"], ifc_class=quantity_class + ) + quantity[3] = cost_item["CostQuantities"] + self.create_cost_items(cost_item["children"], cost_item["ifc"]) + + def create_boilerplate_ifc(self): + self.file = ifcopenshell.file(schema="IFC4") diff --git a/src/ifc5d/test.csv b/src/ifc5d/test.csv new file mode 100644 index 0000000000..40d6bae51c --- /dev/null +++ b/src/ifc5d/test.csv @@ -0,0 +1,10 @@ +1,"Demolition",,, +2,"Building A",,, +3,"Soft strip",1,"m",5 +3,"Hard Strip",2,"m2",6 +3,"Hazmat",3,"m3",7 +,,,, +2,"Building B",,, +3,"Soft strip",4,"hr",8 +3,"Hard Strip",5,,9 +3,"Hazmat",6,"kg",10 diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py index fbc4c46b2b..52cfcfa8c5 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/unit.py +++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py @@ -197,6 +197,22 @@ def get_property_unit(prop, ifc_file): return units[0] +def get_symbol_quantity_class(symbol): + if not symbol: + return "IfcQuantityCount" + elif symbol[-1:] == "g": + return "IfcQuantityWeight" + elif symbol[-1:] == "s" or symbol == "hr": + return "IfcQuantityTime" + elif symbol[-1:] == "3": + return "IfcQuantityVolume" + elif symbol[-1:] == "2": + return "IfcQuantityArea" + elif symbol[-1:] == "m" or symbol in ["in", "ft", "yd"]: + return "IfcQuantityLength" + return "IfcQuantityCount" + + def get_unit_symbol(unit): if unit.is_a("IfcSIUnit"): symbol = "" From d4fc135209ed7443336b330e6a7a04ae2f2caeb4 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 9 Aug 2021 17:12:23 +1000 Subject: [PATCH 155/168] You can now import cost schedules as CSVs into IFC in Blender --- src/blenderbim/Makefile | 2 ++ .../blenderbim/bim/module/cost/__init__.py | 7 ++++++ .../blenderbim/bim/module/cost/operator.py | 23 +++++++++++++++++++ src/ifc5d/ifc5d/csv2ifc.py | 3 +++ .../ifcopenshell/api/cost/data.py | 8 +++++-- 5 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile index 9f2dc966e6..78309ca686 100644 --- a/src/blenderbim/Makefile +++ b/src/blenderbim/Makefile @@ -118,6 +118,8 @@ endif cp -r dist/working/IfcOpenShell-0.6.0/src/ifcpatch/ifcpatch dist/blenderbim/libs/site/packages/ # Provides IFC4D functionality cp -r dist/working/IfcOpenShell-0.6.0/src/ifc4d/ifc4d dist/blenderbim/libs/site/packages/ + # Provides IFC5D functionality + cp -r dist/working/IfcOpenShell-0.6.0/src/ifc5d/ifc5d dist/blenderbim/libs/site/packages/ rm -rf dist/working # Provides Mustache templating in construction documentation diff --git a/src/blenderbim/blenderbim/bim/module/cost/__init__.py b/src/blenderbim/blenderbim/bim/module/cost/__init__.py index 5a5abd7578..e0259d2ba6 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/cost/__init__.py @@ -33,6 +33,7 @@ classes = ( operator.CopyCostItemValues, operator.SelectCostItemProducts, operator.SelectCostScheduleProducts, + operator.ImportCostScheduleCsv, prop.CostItem, prop.BIMCostProperties, ui.BIM_PT_cost_schedules, @@ -40,9 +41,15 @@ classes = ( ) +def menu_func_import(self, context): + self.layout.operator(operator.ImportCostScheduleCsv.bl_idname, text="Cost Schedule (.csv)") + + def register(): bpy.types.Scene.BIMCostProperties = bpy.props.PointerProperty(type=prop.BIMCostProperties) + bpy.types.TOPBAR_MT_file_import.append(menu_func_import) def unregister(): del bpy.types.Scene.BIMCostProperties + bpy.types.TOPBAR_MT_file_import.remove(menu_func_import) diff --git a/src/blenderbim/blenderbim/bim/module/cost/operator.py b/src/blenderbim/blenderbim/bim/module/cost/operator.py index fb98628a93..e0ec2d12ea 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/operator.py +++ b/src/blenderbim/blenderbim/bim/module/cost/operator.py @@ -1,10 +1,12 @@ import os import bpy import json +import time import ifcopenshell.api import blenderbim.bim.helper from blenderbim.bim.module.cost.prop import purge from blenderbim.bim.ifc import IfcStore +from bpy_extras.io_utils import ImportHelper from ifcopenshell.api.cost.data import Data @@ -650,3 +652,24 @@ class SelectCostScheduleProducts(bpy.types.Operator): self.related_products.extend(cost_item["Controls"]) for child_id in cost_item["IsNestedBy"]: self.get_related_products(Data.cost_items[child_id]) + + +class ImportCostScheduleCsv(bpy.types.Operator, ImportHelper): + bl_idname = "import_cost_schedule_csv.bim" + bl_label = "Import Cost Schedule CSV" + bl_options = {"REGISTER", "UNDO"} + filename_ext = ".csv" + filter_glob: bpy.props.StringProperty(default="*.csv", options={"HIDDEN"}) + + def execute(self, context): + from ifc5d.csv2ifc import Csv2Ifc + + self.file = IfcStore.get_file() + start = time.time() + csv2ifc = Csv2Ifc() + csv2ifc.csv = self.filepath + csv2ifc.file = self.file + csv2ifc.execute() + Data.load(IfcStore.get_file()) + print("Import finished in {:.2f} seconds".format(time.time() - start)) + return {"FINISHED"} diff --git a/src/ifc5d/ifc5d/csv2ifc.py b/src/ifc5d/ifc5d/csv2ifc.py index 4f6d16a2a1..14433d9c01 100644 --- a/src/ifc5d/ifc5d/csv2ifc.py +++ b/src/ifc5d/ifc5d/csv2ifc.py @@ -77,6 +77,9 @@ class Csv2Ifc: if cost_item["CostValues"]: cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) cost_value.AppliedValue = self.file.createIfcReal(cost_item["CostValues"]) + else: + cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) + cost_value.Category = "*" if cost_item["CostQuantities"]: quantity_class = ifcopenshell.util.unit.get_symbol_quantity_class(cost_item["CostQuantitiesUnit"]) quantity = ifcopenshell.api.run( diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/data.py b/src/ifcopenshell-python/ifcopenshell/api/cost/data.py index cf59abfff0..6c5a846d93 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/data.py @@ -69,8 +69,12 @@ class Data: if cost_item.CostQuantities: quantity = cost_item.CostQuantities[0] unit = ifcopenshell.util.unit.get_property_unit(quantity, cls.file) - data["Unit"] = unit.id() - data["UnitSymbol"] = ifcopenshell.util.unit.get_unit_symbol(unit) + if unit: + data["Unit"] = unit.id() + data["UnitSymbol"] = ifcopenshell.util.unit.get_unit_symbol(unit) + else: + data["Unit"] = None + data["UnitSymbol"] = None @classmethod def load_cost_item_values(cls, cost_item, data): From efec360a00b3efc3b978dae7f2d197d02540f191 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 9 Aug 2021 17:57:34 +1000 Subject: [PATCH 156/168] Ifc5d can now parse cost category breakdowns in CSV form --- src/ifc5d/ifc5d/csv2ifc.py | 80 +++++++++++++------ src/ifc5d/test.csv | 24 +++--- .../ifcopenshell/util/unit.py | 12 +-- 3 files changed, 77 insertions(+), 39 deletions(-) diff --git a/src/ifc5d/ifc5d/csv2ifc.py b/src/ifc5d/ifc5d/csv2ifc.py index 14433d9c01..8e8b704d6e 100644 --- a/src/ifc5d/ifc5d/csv2ifc.py +++ b/src/ifc5d/ifc5d/csv2ifc.py @@ -1,4 +1,3 @@ - # Ifc5D - IFC costing utility # Copyright (C) 2021 Dion Moult # @@ -36,11 +35,21 @@ class Csv2Ifc: def parse_csv(self): self.parents = {} + self.headers = {} with open(self.csv, "r") as csv_file: reader = csv.reader(csv_file) for row in reader: if not row[0]: continue + if row[0] == "Hierarchy": + self.has_categories = True + for i, col in enumerate(row): + if not col: + continue + if col == "Value": + self.has_categories = False + self.headers[col] = i + continue cost_data = self.get_row_cost_data(row) hierarchy_key = int(row[0]) if hierarchy_key == 1: @@ -50,11 +59,23 @@ class Csv2Ifc: self.parents[hierarchy_key] = cost_data def get_row_cost_data(self, row): + name = row[self.headers["Name"]] + cost_quantities = row[self.headers["Quantity"]] + cost_quantities_unit = row[self.headers["Unit"]] + if self.has_categories: + cost_values = { + k: float(row[v]) + for k, v in self.headers.items() + if k not in ["Hierarchy", "Name", "Quantity", "Unit", "Subtotal"] and row[v] + } + else: + cost_values = row[self.headers["Value"]] + cost_values = float(cost_values) if cost_values else None return { - "Name": str(row[1]) if row[1] else None, - "CostQuantities": float(row[2]) if row[2] else None, - "CostQuantitiesUnit": str(row[3]) if row[3] else None, - "CostValues": float(row[4]) if row[4] else None, + "Name": str(name) if name else None, + "CostQuantities": float(cost_quantities) if cost_quantities else None, + "CostQuantitiesUnit": str(cost_quantities_unit) if cost_quantities_unit else None, + "CostValues": cost_values, "children": [], } @@ -67,26 +88,37 @@ class Csv2Ifc: def create_cost_items(self, cost_items, parent=None): for cost_item in cost_items: - if parent is None: - cost_item["ifc"] = ifcopenshell.api.run( - "cost.add_cost_item", self.file, cost_schedule=self.cost_schedule - ) - else: - cost_item["ifc"] = ifcopenshell.api.run("cost.add_cost_item", self.file, cost_item=parent) - cost_item["ifc"].Name = cost_item["Name"] - if cost_item["CostValues"]: + self.create_cost_item(cost_item, parent) + + def create_cost_item(self, cost_item, parent): + if parent is None: + cost_item["ifc"] = ifcopenshell.api.run( + "cost.add_cost_item", self.file, cost_schedule=self.cost_schedule + ) + else: + cost_item["ifc"] = ifcopenshell.api.run("cost.add_cost_item", self.file, cost_item=parent) + + cost_item["ifc"].Name = cost_item["Name"] + + if not cost_item["CostValues"]: + cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) + cost_value.Category = "*" + elif self.has_categories: + for category, value in cost_item["CostValues"].items(): cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) - cost_value.AppliedValue = self.file.createIfcReal(cost_item["CostValues"]) - else: - cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) - cost_value.Category = "*" - if cost_item["CostQuantities"]: - quantity_class = ifcopenshell.util.unit.get_symbol_quantity_class(cost_item["CostQuantitiesUnit"]) - quantity = ifcopenshell.api.run( - "cost.add_cost_item_quantity", self.file, cost_item=cost_item["ifc"], ifc_class=quantity_class - ) - quantity[3] = cost_item["CostQuantities"] - self.create_cost_items(cost_item["children"], cost_item["ifc"]) + cost_value.AppliedValue = self.file.createIfcReal(value) + cost_value.Category = category + else: + cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) + cost_value.AppliedValue = self.file.createIfcReal(cost_item["CostValues"]) + + if cost_item["CostQuantities"]: + quantity_class = ifcopenshell.util.unit.get_symbol_quantity_class(cost_item["CostQuantitiesUnit"]) + quantity = ifcopenshell.api.run( + "cost.add_cost_item_quantity", self.file, cost_item=cost_item["ifc"], ifc_class=quantity_class + ) + quantity[3] = cost_item["CostQuantities"] + self.create_cost_items(cost_item["children"], cost_item["ifc"]) def create_boilerplate_ifc(self): self.file = ifcopenshell.file(schema="IFC4") diff --git a/src/ifc5d/test.csv b/src/ifc5d/test.csv index 40d6bae51c..203122abae 100644 --- a/src/ifc5d/test.csv +++ b/src/ifc5d/test.csv @@ -1,10 +1,14 @@ -1,"Demolition",,, -2,"Building A",,, -3,"Soft strip",1,"m",5 -3,"Hard Strip",2,"m2",6 -3,"Hazmat",3,"m3",7 -,,,, -2,"Building B",,, -3,"Soft strip",4,"hr",8 -3,"Hard Strip",5,,9 -3,"Hazmat",6,"kg",10 +"Hierarchy","Name","Quantity","Unit","Foo","Bar","Baz","Subtotal" +1,"Demolition",,,,,,301 +,,,,,,, +2,"Building A",,,,,,96 +,,,,,,, +3,"Soft strip",1,"m",5,4,3,12 +3,"Hard Strip",2,"m2",6,5,4,30 +3,"Hazmat",3,"m3",7,6,5,54 +,,,,,,, +2,"Building B",,,,,,205 +,,,,,,, +3,"Soft strip",4,"hr",8,7,,60 +3,"Hard Strip",5,,9,,8,85 +3,"Hazmat",6,"kg",10,,,60 diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py index 52cfcfa8c5..5156ecac05 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/unit.py +++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py @@ -198,17 +198,19 @@ def get_property_unit(prop, ifc_file): def get_symbol_quantity_class(symbol): + # Dumb, but everybody gets it, unlike regex golf if not symbol: return "IfcQuantityCount" - elif symbol[-1:] == "g": + symbol = symbol.lower() + if symbol in ["kg", "g", "mt", "kt", "t"]: return "IfcQuantityWeight" - elif symbol[-1:] == "s" or symbol == "hr": + elif symbol in ["day", "d", "hour", "hr", "h", "minute", "min", "m", "second", "sec", "s"]: return "IfcQuantityTime" - elif symbol[-1:] == "3": + elif symbol in ["km3", "m3", "cm3", "mm3", "cy", "cft", "cin"]: return "IfcQuantityVolume" - elif symbol[-1:] == "2": + elif symbol in ["km2", "m2", "cm2", "mm2", "sqy", "sqft", "sqin"]: return "IfcQuantityArea" - elif symbol[-1:] == "m" or symbol in ["in", "ft", "yd"]: + elif symbol in ["km", "m", "cm", "mm", "ly", "lf", "lin", "yd", "ft", "in"]: return "IfcQuantityLength" return "IfcQuantityCount" From 9a748e640e6226de7727c4330e12e5aeda0faa2e Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 9 Aug 2021 18:29:25 +1000 Subject: [PATCH 157/168] Fix bug where you couldn't delete non active task columns --- src/blenderbim/blenderbim/bim/module/sequence/operator.py | 3 ++- src/blenderbim/blenderbim/bim/module/sequence/ui.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/sequence/operator.py b/src/blenderbim/blenderbim/bim/module/sequence/operator.py index c5edca95b1..583fcf2e5d 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/operator.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/operator.py @@ -1941,10 +1941,11 @@ class RemoveTaskColumn(bpy.types.Operator): bl_idname = "bim.remove_task_column" bl_label = "Remove Task Column" bl_options = {"REGISTER", "UNDO"} + name: bpy.props.StringProperty() def execute(self, context): self.props = context.scene.BIMWorkScheduleProperties - self.props.columns.remove(self.props.active_column_index) + self.props.columns.remove(self.props.columns.find(self.name)) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/sequence/ui.py b/src/blenderbim/blenderbim/bim/module/sequence/ui.py index d7dd580dd7..2fbaff93fc 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/ui.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/ui.py @@ -316,7 +316,7 @@ class BIM_UL_task_columns(UIList): row.prop(item, "name", emboss=False, text="") if props.sort_column == item.name: row.label(text="", icon="SORTALPHA") - row.operator("bim.remove_task_column", text="", icon="X") + row.operator("bim.remove_task_column", text="", icon="X").name = item.name class BIM_UL_tasks(UIList): From 4bb888c86284da78efbc3ab0941dff4a74f4124e Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 9 Aug 2021 19:06:06 +1000 Subject: [PATCH 158/168] You can now customise cost category columns in the cost schedule tree --- .../blenderbim/bim/module/cost/__init__.py | 3 ++ .../blenderbim/bim/module/cost/operator.py | 29 +++++++++++++++++++ .../blenderbim/bim/module/cost/prop.py | 4 +++ .../blenderbim/bim/module/cost/ui.py | 22 ++++++++++++++ .../ifcopenshell/api/cost/data.py | 18 ++++++++++-- 5 files changed, 73 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/cost/__init__.py b/src/blenderbim/blenderbim/bim/module/cost/__init__.py index e0259d2ba6..1c9bd13b03 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/cost/__init__.py @@ -19,6 +19,8 @@ classes = ( operator.DisableEditingCostSchedule, operator.DisableEditingCostItemQuantity, operator.DisableEditingCostItemValue, + operator.AddCostColumn, + operator.RemoveCostColumn, operator.AddCostItem, operator.AddSummaryCostItem, operator.ExpandCostItem, @@ -38,6 +40,7 @@ classes = ( prop.BIMCostProperties, ui.BIM_PT_cost_schedules, ui.BIM_UL_cost_items, + ui.BIM_UL_cost_columns, ) diff --git a/src/blenderbim/blenderbim/bim/module/cost/operator.py b/src/blenderbim/blenderbim/bim/module/cost/operator.py index e0ec2d12ea..f6da24010d 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/operator.py +++ b/src/blenderbim/blenderbim/bim/module/cost/operator.py @@ -673,3 +673,32 @@ class ImportCostScheduleCsv(bpy.types.Operator, ImportHelper): Data.load(IfcStore.get_file()) print("Import finished in {:.2f} seconds".format(time.time() - start)) return {"FINISHED"} + + +class AddCostColumn(bpy.types.Operator): + bl_idname = "bim.add_cost_column" + bl_label = "Add Cost Column" + bl_options = {"REGISTER", "UNDO"} + name: bpy.props.StringProperty() + + def execute(self, context): + self.props = context.scene.BIMCostProperties + new = self.props.columns.add() + new.name = self.name + Data.set_categories([c.name for c in self.props.columns]) + Data.load(IfcStore.get_file()) + return {"FINISHED"} + + +class RemoveCostColumn(bpy.types.Operator): + bl_idname = "bim.remove_cost_column" + bl_label = "Remove Cost Column" + bl_options = {"REGISTER", "UNDO"} + name: bpy.props.StringProperty() + + def execute(self, context): + self.props = context.scene.BIMCostProperties + self.props.columns.remove(self.props.columns.find(self.name)) + Data.set_categories([c.name for c in self.props.columns]) + Data.load(IfcStore.get_file()) + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/cost/prop.py b/src/blenderbim/blenderbim/bim/module/cost/prop.py index c02660b537..98936463f9 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/prop.py +++ b/src/blenderbim/blenderbim/bim/module/cost/prop.py @@ -105,3 +105,7 @@ class BIMCostProperties(PropertyGroup): cost_category: StringProperty(name="Cost Category") active_cost_item_value_id: IntProperty(name="Active Cost Item Value Id") cost_value_attributes: CollectionProperty(name="Cost Value Attributes", type=Attribute) + cost_column: StringProperty(name="Cost Column") + should_show_column_ui: BoolProperty(name="Should Show Column UI", default=False) + columns: CollectionProperty(name="Columns", type=StrProperty) + active_column_index: IntProperty(name="Active Column Index") diff --git a/src/blenderbim/blenderbim/bim/module/cost/ui.py b/src/blenderbim/blenderbim/bim/module/cost/ui.py index 64cdd14fd9..658a387b47 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/ui.py +++ b/src/blenderbim/blenderbim/bim/module/cost/ui.py @@ -35,6 +35,7 @@ class BIM_PT_cost_schedules(Panel): if self.props.active_cost_schedule_id and self.props.active_cost_schedule_id == cost_schedule_id: op = row.operator("bim.select_cost_schedule_products", icon="RESTRICT_SELECT_OFF", text="") op.cost_schedule = cost_schedule_id + row.prop(self.props, "should_show_column_ui", text="", icon="SHORTDISPLAY") if self.props.is_editing == "COST_SCHEDULE": row.operator("bim.edit_cost_schedule", text="", icon="CHECKMARK") elif self.props.is_editing == "COST_ITEMS": @@ -53,8 +54,16 @@ class BIM_PT_cost_schedules(Panel): if self.props.is_editing == "COST_SCHEDULE": self.draw_editable_cost_schedule_ui() elif self.props.is_editing == "COST_ITEMS": + if self.props.should_show_column_ui: + self.draw_column_ui() self.draw_editable_cost_item_ui(cost_schedule_id) + def draw_column_ui(self): + row = self.layout.row(align=True) + row.prop(self.props, "cost_column", text="") + row.operator("bim.add_cost_column", text="", icon="ADD").name = self.props.cost_column + self.layout.template_list("BIM_UL_cost_columns", "", self.props, "columns", self.props, "active_column_index") + def draw_editable_cost_schedule_ui(self): for attribute in self.props.cost_schedule_attributes: row = self.layout.row(align=True) @@ -266,6 +275,10 @@ class BIM_UL_cost_items(UIList): op = row.operator("bim.enable_editing_cost_item_values", text="", icon="DISC") op.cost_item = item.ifc_definition_id row.label(text="{0:.2f}".format(cost_item["TotalAppliedValue"])) + + for column in props.columns: + row.label(text=str(cost_item["CategoryValues"].get(column.name, "-"))) + row.label(text="{0:.2f}".format(cost_item["TotalCostValue"]), icon="CON_TRANSLIKE") if context.active_object: @@ -297,3 +310,12 @@ class BIM_UL_cost_items(UIList): ).cost_item = item.ifc_definition_id row.operator("bim.add_cost_item", text="", icon="ADD").cost_item = item.ifc_definition_id row.operator("bim.remove_cost_item", text="", icon="X").cost_item = item.ifc_definition_id + + +class BIM_UL_cost_columns(UIList): + def draw_item(self, context, layout, data, item, icon, active_data, active_propname): + props = context.scene.BIMCostProperties + if item: + row = layout.row(align=True) + row.prop(item, "name", emboss=False, text="") + row.operator("bim.remove_cost_column", text="", icon="X").name = item.name diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/data.py b/src/ifcopenshell-python/ifcopenshell/api/cost/data.py index 6c5a846d93..3e08f7ad47 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/data.py @@ -8,6 +8,7 @@ class Data: cost_items = {} physical_quantities = {} cost_values = {} + categories = [] @classmethod def purge(cls): @@ -16,6 +17,11 @@ class Data: cls.cost_items = {} cls.physical_quantities = {} cls.cost_values = {} + cls.categories = [] + + @classmethod + def set_categories(cls, categories): + cls.categories = categories @classmethod def load(cls, file): @@ -81,14 +87,15 @@ class Data: data["CostValues"] = [] data["TotalCostValue"] = 0.0 data["TotalAppliedValue"] = 0.0 + data["CategoryValues"] = {} for cost_value in cost_item.CostValues or []: - cls.load_cost_item_value(cost_item, cost_value) + cls.load_cost_item_value(data, cost_item, cost_value) data["CostValues"].append(cost_value.id()) data["TotalAppliedValue"] += cls.cost_values[cost_value.id()]["AppliedValue"] data["TotalCostValue"] = data["TotalCostQuantity"] * data["TotalAppliedValue"] @classmethod - def load_cost_item_value(cls, cost_item, cost_value): + def load_cost_item_value(cls, cost_item_data, cost_item, cost_value): value_data = cost_value.get_info() del value_data["AppliedValue"] del value_data["UnitBasis"] @@ -98,9 +105,14 @@ class Data: value_data["FixedUntilDate"] = ifcopenshell.util.date.ifc2datetime(value_data["FixedUntilDate"]) value_data["Components"] = [c.id() for c in value_data["Components"] or []] value_data["AppliedValue"] = cls.calculate_applied_value(cost_item, cost_value) + + if cost_value.Category not in [None, "*"]: + cost_item_data["CategoryValues"].setdefault(cost_value.Category, 0) + cost_item_data["CategoryValues"][cost_value.Category] += value_data["AppliedValue"] + cls.cost_values[cost_value.id()] = value_data for component in cost_value.Components or []: - cls.load_cost_item_value(cost_item, component) + cls.load_cost_item_value(cost_item_data, cost_item, component) @classmethod def calculate_applied_value(cls, cost_item, cost_value, category_filter=None): From 4c67137d47052c53b9c36f1e032647c2682db886 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 9 Aug 2021 20:30:14 +1000 Subject: [PATCH 159/168] You can now create curve shapes from the debug panel too --- src/blenderbim/blenderbim/bim/module/debug/operator.py | 4 +++- src/blenderbim/blenderbim/bim/module/debug/ui.py | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/debug/operator.py b/src/blenderbim/blenderbim/bim/module/debug/operator.py index b7096f86e8..bcb196c9b4 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/operator.py +++ b/src/blenderbim/blenderbim/bim/module/debug/operator.py @@ -113,6 +113,7 @@ class CreateShapeFromStepId(bpy.types.Operator): bl_idname = "bim.create_shape_from_step_id" bl_label = "Create Shape From STEP ID" bl_options = {"REGISTER", "UNDO"} + should_include_curves: bpy.props.BoolProperty() @classmethod def poll(cls, context): @@ -127,7 +128,8 @@ class CreateShapeFromStepId(bpy.types.Operator): self.file = IfcStore.get_file() element = self.file.by_id(int(context.scene.BIMDebugProperties.step_id)) settings = ifcopenshell.geom.settings() - # settings.set(settings.INCLUDE_CURVES, True) + if self.should_include_curves: + settings.set(settings.INCLUDE_CURVES, True) shape = ifcopenshell.geom.create_shape(settings, element) ifc_importer = import_ifc.IfcImporter(self.ifc_import_settings) ifc_importer.file = self.file diff --git a/src/blenderbim/blenderbim/bim/module/debug/ui.py b/src/blenderbim/blenderbim/bim/module/debug/ui.py index 5919b6058f..7575fa4f7b 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/ui.py +++ b/src/blenderbim/blenderbim/bim/module/debug/ui.py @@ -32,8 +32,9 @@ class BIM_PT_debug(Panel): row = layout.row() row.operator("bim.profile_import_ifc") - row = layout.split(factor=0.7, align=True) - row.operator("bim.create_shape_from_step_id") + row = layout.split(factor=0.5, align=True) + row.operator("bim.create_shape_from_step_id").should_include_curves = False + row.operator("bim.create_shape_from_step_id", text="", icon="IPO_ELASTIC").should_include_curves = True row.prop(props, "step_id", text="") row = layout.split(factor=0.7, align=True) From 4bf074f97a2f1043f80f9a02e7cdfb85daded3eb Mon Sep 17 00:00:00 2001 From: LaurensJN Date: Mon, 9 Aug 2021 13:10:26 +0200 Subject: [PATCH 160/168] ifccityjson conversion support for MultiLineString and MultiPoint --- src/ifccityjson/README.md | 8 +- src/ifccityjson/cityjson2ifc.py | 27 +- src/ifccityjson/example/geometries.json | 485 ++++++++++++++++++++++++ src/ifccityjson/geometry.py | 48 ++- src/ifccityjson/ifccityjson.py | 1 + 5 files changed, 546 insertions(+), 23 deletions(-) create mode 100644 src/ifccityjson/example/geometries.json diff --git a/src/ifccityjson/README.md b/src/ifccityjson/README.md index 95183145ed..d15fb01142 100644 --- a/src/ifccityjson/README.md +++ b/src/ifccityjson/README.md @@ -19,8 +19,8 @@ The example file that could be used is example/3D_BAG_example.json python ifccityjson.py -i example/3DBAG_example.json -o example/3DBAG_example.ifc -n identificatie ## Implemented geometries -- [ ] "MultiPoint" -- [ ] "MultiLineString" +- [x] "MultiPoint" +- [x] "MultiLineString" - [x] "MultiSurface" - [x] "CompositeSurface" - [x] "Solid": exterior shell @@ -34,5 +34,5 @@ The example file that could be used is example/3D_BAG_example.json - [x] Implement georeferencing - [x] Do not use template IFC for new IFC file, but make IFC file from scratch - [x] Create mapping to IFC for all CityJSON object types & semantic surfaces -- [ ] Implement conversion of all geometries -- [ ] Implement conversion of all LODs instead of online the most detailed +- [ ] Implement conversion of all CitYJSON geometries +- [ ] Implement conversion of all LODs instead of only the most detailed diff --git a/src/ifccityjson/cityjson2ifc.py b/src/ifccityjson/cityjson2ifc.py index 0916fd5bb1..986d203913 100644 --- a/src/ifccityjson/cityjson2ifc.py +++ b/src/ifccityjson/cityjson2ifc.py @@ -106,15 +106,14 @@ class Cityjson2ifc: def create_new_file(self): self.IFC_model = ifcopenshell.api.run("project.create_file") self.IFC_project = ifcopenshell.api.run("root.create_entity", self.IFC_model, **{"ifc_class": "IfcProject"}) + ifcopenshell.api.run("unit.assign_unit", self.IFC_model, length={"is_metric": True, "raw": "METERS"}) self.properties["owner_history"] = self.create_owner_history() - ifcopenshell.api.run("unit.assign_unit", self.IFC_model) self.IFC_representation_context = ifcopenshell.api.run("context.add_context", self.IFC_model, **{"context": "Model"}) self.IFC_representation_sub_context = ifcopenshell.api.run("context.add_context", self.IFC_model, **{"context": "Model", "subcontext": "Body", # LODs as subcontext "target_view": "MODEL_VIEW"}) - self.IFC_site = ifcopenshell.api.run("root.create_entity", self.IFC_model, **{"ifc_class": "IfcSite", "name": "My Site"}) @@ -150,7 +149,7 @@ class Cityjson2ifc: data.update(mapping[1]) # attributes - IFC_name = None + IFC_name = obj_id if "name_attribute" in self.properties and self.properties["name_attribute"] in obj.attributes: IFC_name = obj.attributes[self.properties["name_attribute"]] @@ -175,25 +174,26 @@ class Cityjson2ifc: child_data = {"GlobalId": ifcopenshell.guid.new(), "Name": IFC_child_class } + # CREATE ENTITY surface_geometry = self.geometry.create_IFC_surface(self.IFC_model, geometry, surface_id) if surface_geometry: - child_data["Representation"] = self.create_IFC_representation(surface_geometry) + child_data["Representation"] = self.create_IFC_representation(surface_geometry, 'brep') IFC_children.append(self.IFC_model.create_entity(IFC_child_class, **child_data)) else: - IFC_geometry = self.geometry.create_IFC_geometry(self.IFC_model, geometry) + IFC_geometry, shape_representation_type = self.geometry.create_IFC_geometry(self.IFC_model, geometry) if IFC_geometry: - data["Representation"] = self.create_IFC_representation(IFC_geometry) + data["Representation"] = self.create_IFC_representation(IFC_geometry, shape_representation_type) data["GlobalId"] = ifcopenshell.guid.new() data["Name"] = IFC_name IFC_object = self.IFC_model.create_entity(IFC_class, **data) # Define aggregation - self.IFC_model.create_entity("IfcRelAggregates", + self.IFC_model.create_entity("IfcRelContainedInSpatialStructure", **{"GlobalId": ifcopenshell.guid.new(), - "RelatedObjects": [IFC_object], - "RelatingObject": self.IFC_site} + "RelatedElements": [IFC_object], + "RelatingStructure": self.IFC_site} ) if IFC_children: self.IFC_model.create_entity("IfcRelAggregates", @@ -203,10 +203,13 @@ class Cityjson2ifc: self.create_property_set(obj.attributes, IFC_object) - def create_IFC_representation(self, IFC_geometry): + def create_IFC_representation(self, IFC_geometry, shape_representation_type): + if not isinstance(IFC_geometry, list): + IFC_geometry = [IFC_geometry] + shape_representation = self.IFC_model.create_entity("IfcShapeRepresentation", - self.IFC_representation_sub_context, 'Body', 'Brep', - [IFC_geometry]) + self.IFC_representation_sub_context, 'Body', shape_representation_type, + IFC_geometry) product_representation = self.IFC_model.create_entity("IfcProductDefinitionShape", Representations=[shape_representation]) return product_representation diff --git a/src/ifccityjson/example/geometries.json b/src/ifccityjson/example/geometries.json new file mode 100644 index 0000000000..cf5f1c7812 --- /dev/null +++ b/src/ifccityjson/example/geometries.json @@ -0,0 +1,485 @@ +{ + "CityObjects": { + "multipoint": { + "geometry": [ + { + "type": "MultiPoint", + "lod": 1, + "boundaries": [ + 2, + 3, + 5, + 7 + ] + } + ], + "attributes": { + "function": "Being a MultiPoint geometry" + }, + "type": "GenericCityObject" + }, + "multiline": { + "geometry": [ + { + "type": "MultiLineString", + "lod": 1, + "boundaries": [ + [ + 2, + 3, + 9 + ], + [ + 10, + 8, + 10 + ] + ] + } + ], + "attributes": { + "function": "Being a MultiLineString" + }, + "type": "GenericCityObject" + }, + "multisurface": { + "geometry": [ + { + "type": "MultiSurface", + "lod": 1, + "boundaries": [ + [ + [ + 0, + 3, + 2, + 1 + ] + ], + [ + [ + 4, + 5, + 6, + 7 + ] + ], + [ + [ + 0, + 1, + 5, + 4 + ] + ] + ] + } + ], + "attributes": { + "function": "Being a MultiSurface without holes" + }, + "type": "GenericCityObject" + }, + "CompositeSurface": { + "geometry": [ + { + "type": "CompositeSurface", + "lod": 1, + "boundaries": [ + [ + [ + 0, + 3, + 2, + 1 + ] + ], + [ + [ + 4, + 5, + 6, + 7 + ] + ], + [ + [ + 0, + 1, + 5, + 4 + ] + ] + ] + } + ], + "attributes": { + "function": "Being a CompositeSurface without holes" + }, + "type": "GenericCityObject" + }, + "cube": { + "geometry": [ + { + "boundaries": [ + [ + [ + [ + 0, + 1, + 2, + 3 + ] + ], + [ + [ + 7, + 4, + 0, + 3 + ] + ], + [ + [ + 4, + 5, + 1, + 0 + ] + ], + [ + [ + 5, + 6, + 2, + 1 + ] + ], + [ + [ + 3, + 2, + 6, + 7 + ] + ], + [ + [ + 6, + 5, + 4, + 7 + ] + ] + ] + ], + "lod": 1, + "type": "Solid" + } + ], + "attributes": { + "function": "being a Solid geometry cube" + }, + "type": "GenericCityObject" + }, + "multicube": { + "geometry": [ + { + "boundaries": [[ + [ + [ + [ + 0, + 1, + 2, + 3 + ] + ], + [ + [ + 7, + 4, + 0, + 3 + ] + ], + [ + [ + 4, + 5, + 1, + 0 + ] + ], + [ + [ + 5, + 6, + 2, + 1 + ] + ], + [ + [ + 3, + 2, + 6, + 7 + ] + ], + [ + [ + 6, + 5, + 4, + 7 + ] + ] + ] + ],[ + [ + [ + [ + 0, + 1, + 2, + 3 + ] + ], + [ + [ + 7, + 4, + 0, + 3 + ] + ], + [ + [ + 4, + 5, + 1, + 0 + ] + ], + [ + [ + 5, + 6, + 2, + 1 + ] + ], + [ + [ + 3, + 2, + 6, + 7 + ] + ], + [ + [ + 6, + 5, + 4, + 7 + ] + ] + ] + ]], + "lod": 1, + "type": "MultiSolid" + } + ], + "attributes": { + "function": "being a MultiSolid geometry cube that is twice the same geometry" + }, + "type": "GenericCityObject" + }, + "compositecube": { + "geometry": [ + { + "boundaries": [[ + [ + [ + [ + 0, + 1, + 2, + 3 + ] + ], + [ + [ + 7, + 4, + 0, + 3 + ] + ], + [ + [ + 4, + 5, + 1, + 0 + ] + ], + [ + [ + 5, + 6, + 2, + 1 + ] + ], + [ + [ + 3, + 2, + 6, + 7 + ] + ], + [ + [ + 6, + 5, + 4, + 7 + ] + ] + ] + ],[ + [ + [ + [ + 0, + 1, + 2, + 3 + ] + ], + [ + [ + 7, + 4, + 0, + 3 + ] + ], + [ + [ + 4, + 5, + 1, + 0 + ] + ], + [ + [ + 5, + 6, + 2, + 1 + ] + ], + [ + [ + 3, + 2, + 6, + 7 + ] + ], + [ + [ + 6, + 5, + 4, + 7 + ] + ] + ] + ]], + "lod": 1, + "type": "CompositeSolid" + } + ], + "attributes": { + "function": "being a CompositeSolid geometry cube that is twice the same geometry" + }, + "type": "GenericCityObject" + } + }, + "type": "CityJSON", + "version": "1.0", + "vertices": [ + [ + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 1.0, + 1.0 + ], + [ + -1.0, + 0.0, + 1.0 + ], + [ + 0.0, + -1.0, + 1.0 + ], + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0 + ], + [ + -1.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.0, + 0.0 + ], + [ + 5.0, + 30, + 2.0 + ], + [ + 6.0, + -1.0, + 2.0 + ], + [ + 8.0, + 7.0, + -1.0 + ] + ], + "metadata": { + "geographicalExtent": [ + -1.0, + -1.0, + 0.0, + 1.0, + 1.0, + 1.0 + ] + } +} \ No newline at end of file diff --git a/src/ifccityjson/geometry.py b/src/ifccityjson/geometry.py index 87cebb392c..4706dde237 100644 --- a/src/ifccityjson/geometry.py +++ b/src/ifccityjson/geometry.py @@ -35,16 +35,50 @@ class GeometryIO: IFC_cartesian_point = IFC_model.create_entity("IfcCartesianPoint", IFC_vertex) self.vertices[tuple(coord)] = IFC_cartesian_point + # See for CityJSON geometries: + # https://www.cityjson.org/dev/geom-arrays/ + # https://www.cityjson.org/specs/1.0.3/#geometry-objects def create_IFC_geometry(self, IFC_model, geometry): - if geometry.type == "Solid": - return self.create_IFC_closed_shell(IFC_model, geometry) - elif geometry.type in ["CompositeSolid", "MultiSolid"]: - return self.create_IFC_composite_closed_shell(IFC_model, geometry) + IFC_Geometry = None + geometry_type = 'brep' + if geometry.type in ["MultiPoint"]: + IFC_geometry = self.create_IFC_cartesian_point_list3D(IFC_model, geometry) + geometry_type = 'PointCloud' + elif geometry.type in ["MultiLineString"]: + IFC_geometry = self.create_IFC_composite_curve(IFC_model, geometry) + geometry_type = 'Curve3D' elif geometry.type in ["CompositeSurface", "MultiSurface"]: - return self.create_IFC_surface(IFC_model, geometry) + IFC_geometry = self.create_IFC_surface(IFC_model, geometry) + elif geometry.type == "Solid": + IFC_geometry = self.create_IFC_closed_shell(IFC_model, geometry) + elif geometry.type in ["CompositeSolid", "MultiSolid"]: + IFC_geometry = self.create_IFC_composite_closed_shell(IFC_model, geometry) + elif geometry.type in ["GeometryInstance"]: + warnings.warn("GeometryInstance is not supported.") + return None, None else: - warnings.warn("Types other than solids are not yet supported") - return + warnings.warn("Custom CityJSON geometries are not supported.") + return None, None + return IFC_geometry, geometry_type + + def create_IFC_cartesian_point_list3D(self, IFC_model, geometry): + # https://www.cityjson.org/dev/geom-arrays/ + # https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcgeometricmodelresource/lexical/ifccartesianpointlist3d.htm + IFC_geometry = IFC_model.create_entity("IfcCartesianPointList3D", geometry.boundaries) + return IFC_geometry + + def create_IFC_composite_curve(self, IFC_model, geometry): + # https://www.cityjson.org/dev/geom-arrays/ + # https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcgeometryresource/lexical/ifccompositecurve.htm + # https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcgeometryresource/lexical/ifccompositecurvesegment.htm + IFC_geometry = [] + for line in geometry.boundaries: + vertices = [] + for vertex in line: + vertices.append(self.vertices[tuple(vertex)]) + polyline = IFC_model.create_entity("IfcPolyLine", vertices) + IFC_geometry.append(polyline) + return IFC_geometry def create_IFC_composite_closed_shell(self, IFC_model, geometry): shells = [] diff --git a/src/ifccityjson/ifccityjson.py b/src/ifccityjson/ifccityjson.py index c8cb23d691..791cf5d42b 100644 --- a/src/ifccityjson/ifccityjson.py +++ b/src/ifccityjson/ifccityjson.py @@ -25,6 +25,7 @@ from cityjson2ifc import Cityjson2ifc if __name__ == '__main__': # Example: # python ifccityjson.py -i example/3DBAG_example.json -o example/output.ifc -n identificatie + # python ifccityjson.py -i example/geometries.json -o example/geometry_output.ifc parser = argparse.ArgumentParser(description="") parser.add_argument("-i", "--input", type=str, help="input CityJSON file", required=True) parser.add_argument("-o", "--output", type=str, help="output IFC file. Standard is output.ifc") From 869bb22830d1a447e26df1dc6e534e165d18a105 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 10 Aug 2021 09:35:09 +1000 Subject: [PATCH 161/168] You can now import a cost schedule from an IFC project library --- .../blenderbim/bim/module/project/operator.py | 2 +- .../ifcopenshell/api/project/append_asset.py | 26 ++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index 92c493a91d..5b8a69c62e 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -172,7 +172,7 @@ class RefreshLibrary(bpy.types.Operator): self.props.active_library_element = "" types = IfcStore.library_file.wrapped_data.types_with_super() - for importable_type in ["IfcTypeProduct", "IfcMaterial"]: + for importable_type in ["IfcTypeProduct", "IfcMaterial", "IfcCostSchedule"]: if importable_type in types: new = self.props.library_elements.add() new.name = importable_type diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py index 9088f11b3b..b0ea4066b8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py @@ -12,21 +12,33 @@ class Usecase: def execute(self): self.added_elements = set() if self.settings["element"].is_a("IfcTypeProduct"): - try: - self.file.by_guid(self.settings["element"].GlobalId) - return - except: - pass return self.append_type_product() elif self.settings["element"].is_a("IfcMaterial"): - if [e for e in self.file.by_type("IfcMaterial") if e.Name == self.settings["element"].Name]: - return return self.append_material() + elif self.settings["element"].is_a("IfcCostSchedule"): + return self.append_cost_schedule() + + def is_already_appended(self): + try: + self.file.by_guid(self.settings["element"].GlobalId) + return True + except: + return False def append_material(self): + if [e for e in self.file.by_type("IfcMaterial") if e.Name == self.settings["element"].Name]: + return return self.file.add(self.settings["element"]) + def append_cost_schedule(self): + if self.is_already_appended(): + return + self.whitelisted_inverse_attributes = {"IfcCostSchedule": ["Controls"], "IfcCostItem": ["IsNestedBy"]} + return self.add_element(self.settings["element"]) + def append_type_product(self): + if self.is_already_appended(): + return self.whitelisted_inverse_attributes = { "IfcObjectDefinition": ["HasAssociations"], "IfcMaterialDefinition": ["HasExternalReferences", "HasProperties"], From 023dd289fabad99c0de4cdc9e4db47a6644ff7ab Mon Sep 17 00:00:00 2001 From: bosonprojets Date: Tue, 10 Aug 2021 00:59:20 +0100 Subject: [PATCH 162/168] BlenderBIM and ifcopenshell.api features to enable adding and editing resource time information --- .../bim/module/resource/__init__.py | 3 + .../bim/module/resource/operator.py | 102 ++++++++++++++++-- .../blenderbim/bim/module/resource/prop.py | 3 + .../blenderbim/bim/module/resource/ui.py | 36 +++---- .../bim/module/sequence/operator.py | 2 +- .../blenderbim/bim/module/sequence/prop.py | 2 +- .../api/resource/add_resource_time.py | 15 +++ .../ifcopenshell/api/resource/data.py | 19 ++++ .../api/resource/edit_resource_time.py | 36 +++++++ 9 files changed, 187 insertions(+), 31 deletions(-) create mode 100644 src/ifcopenshell-python/ifcopenshell/api/resource/add_resource_time.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py diff --git a/src/blenderbim/blenderbim/bim/module/resource/__init__.py b/src/blenderbim/blenderbim/bim/module/resource/__init__.py index 38db174c0d..c401265b4d 100644 --- a/src/blenderbim/blenderbim/bim/module/resource/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/resource/__init__.py @@ -14,6 +14,9 @@ classes = ( operator.ContractResource, operator.AssignResource, operator.UnassignResource, + operator.EnableEditingResourceTime, + operator.EditResourceTime, + operator.DisableEditingResourceTime, prop.Resource, prop.BIMResourceProperties, prop.BIMResourceTreeProperties, diff --git a/src/blenderbim/blenderbim/bim/module/resource/operator.py b/src/blenderbim/blenderbim/bim/module/resource/operator.py index 03835444dd..4df0873846 100644 --- a/src/blenderbim/blenderbim/bim/module/resource/operator.py +++ b/src/blenderbim/blenderbim/bim/module/resource/operator.py @@ -3,6 +3,11 @@ import json import ifcopenshell.api from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.resource.data import Data +import blenderbim.bim.helper +import blenderbim.bim.module.sequence.helper as helper +import time +from datetime import datetime +import isodate class LoadResources(bpy.types.Operator): @@ -50,6 +55,7 @@ class EnableEditingResource(bpy.types.Operator): self.props.active_resource_id = self.resource while len(self.props.resource_attributes) > 0: self.props.resource_attributes.remove(0) + self.props.editing_resource_type = "ATTRIBUTES" self.enable_editing_resource() return {"FINISHED"} @@ -72,6 +78,7 @@ class EnableEditingResource(bpy.types.Operator): new.enum_value = data[attribute.name()] + class LoadResourceProperties(bpy.types.Operator): bl_idname = "bim.load_resource_properties" bl_label = "Load Resource Properties" @@ -98,6 +105,7 @@ class DisableEditingResource(bpy.types.Operator): def execute(self, context): context.scene.BIMResourceProperties.active_resource_id = 0 + context.scene.BIMResourceProperties.active_task_time_id = 0 return {"FINISHED"} @@ -143,15 +151,7 @@ class EditResource(bpy.types.Operator): def _execute(self, context): props = context.scene.BIMResourceProperties - attributes = {} - for attribute in props.resource_attributes: - if attribute.is_null: - attributes[attribute.name] = None - else: - if attribute.data_type == "string": - attributes[attribute.name] = attribute.string_value - elif attribute.data_type == "enum": - attributes[attribute.name] = attribute.enum_value + attributes = blenderbim.bim.helper.export_attributes(props.resource_attributes) self.file = IfcStore.get_file() ifcopenshell.api.run( "resource.edit_resource", @@ -265,3 +265,87 @@ class UnassignResource(bpy.types.Operator): ) Data.load(self.file) return {"FINISHED"} + + +class EnableEditingResourceTime(bpy.types.Operator): + bl_idname = "bim.enable_editing_resource_time" + bl_label = "Enable Editing Resource Usage" + bl_options = {"REGISTER", "UNDO"} + resource: bpy.props.IntProperty() + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + props = context.scene.BIMResourceProperties + self.file = IfcStore.get_file() + resource_time_id = Data.resources[self.resource]["Usage"] or self.add_resource_time().id() + while len(props.resource_time_attributes) > 0: + props.resource_time_attributes.remove(0) + + data = Data.resource_times[resource_time_id] + + blenderbim.bim.helper.import_attributes("IfcResourceTime", props.resource_time_attributes, data, self.import_attributes) + props.active_resource_time_id = resource_time_id + props.active_resource_id = self.resource + props.editing_resource_type = "USAGE" + return {"FINISHED"} + + def import_attributes(self, name, prop, data): + if prop.data_type == "string": + if isinstance(data[name], datetime): + prop.string_value = "" if prop.is_null else data[name].isoformat() + return True + elif isinstance(data[name], isodate.Duration): + prop.string_value = ( + "" if prop.is_null else ifcopenshell.util.date.datetime2ifc(data[name], "IfcDuration") + ) + return True + + def add_resource_time(self): + resource_time = ifcopenshell.api.run("resource.add_resource_time", self.file, resource=self.file.by_id(self.resource)) + Data.load(self.file) + return resource_time + + +class DisableEditingResourceTime(bpy.types.Operator): + bl_idname = "bim.disable_editing_resource_time" + bl_label = "Disable Editing Resource Time" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + context.scene.BIMResourceProperties.active_resource_time_id = 0 + bpy.ops.bim.disable_editing_resource() + return {"FINISHED"} + + +class EditResourceTime(bpy.types.Operator): + bl_idname = "bim.edit_resource_time" + bl_label = "Edit Resource Usage" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + self.props = context.scene.BIMResourceProperties + attributes = blenderbim.bim.helper.export_attributes(self.props.resource_time_attributes, self.export_attributes) + + self.file = IfcStore.get_file() + ifcopenshell.api.run( + "resource.edit_resource_time", + self.file, + **{"resource_time": self.file.by_id(self.props.active_resource_time_id), "attributes": attributes}, + ) + Data.load(self.file) + bpy.ops.bim.disable_editing_resource_time() + bpy.ops.bim.load_resource_properties(resource=self.props.active_resource_id) + return {"FINISHED"} + + def export_attributes(self, attributes, prop): + if "Start" in prop.name or "Finish" in prop.name or prop.name == "StatusTime": + attributes[prop.name] = helper.parse_datetime(prop.string_value) + return True + elif prop.name =="LevelingDelay" or "Work" in prop.name: + attributes[prop.name] = helper.parse_duration(prop.string_value) + return True diff --git a/src/blenderbim/blenderbim/bim/module/resource/prop.py b/src/blenderbim/blenderbim/bim/module/resource/prop.py index db1ca153e2..d7b285d372 100644 --- a/src/blenderbim/blenderbim/bim/module/resource/prop.py +++ b/src/blenderbim/blenderbim/bim/module/resource/prop.py @@ -52,3 +52,6 @@ class BIMResourceProperties(PropertyGroup): contracted_resources: StringProperty(name="Contracted Resources", default="[]") is_resource_update_enabled: BoolProperty(name="Is Resource Update Enabled", default=True) is_loaded: BoolProperty(name="Is Editing") + active_resource_time_id: IntProperty(name="Active Resource Usage Id") + resource_time_attributes: CollectionProperty(name="Resource Usage Attributes", type=Attribute) + editing_resource_type: StringProperty(name="Editing Resource Type") diff --git a/src/blenderbim/blenderbim/bim/module/resource/ui.py b/src/blenderbim/blenderbim/bim/module/resource/ui.py index f3619ed2de..bb5c517202 100644 --- a/src/blenderbim/blenderbim/bim/module/resource/ui.py +++ b/src/blenderbim/blenderbim/bim/module/resource/ui.py @@ -1,7 +1,7 @@ from bpy.types import Panel, UIList from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.resource.data import Data - +import blenderbim.bim.helper class BIM_PT_resources(Panel): bl_label = "IFC Resources" @@ -65,24 +65,17 @@ class BIM_PT_resources(Panel): self.props, "active_resource_index", ) - if self.props.active_resource_id: - self.draw_editable_resource_ui() + if self.props.active_resource_id and self.props.editing_resource_type == "ATTRIBUTES": + self.draw_editable_resource_attributes_ui() - def draw_editable_resource_ui(self): - for attribute in self.props.resource_attributes: - row = self.layout.row(align=True) - if attribute.data_type == "string": - row.prop(attribute, "string_value", text=attribute.name) - elif attribute.data_type == "boolean": - row.prop(attribute, "bool_value", text=attribute.name) - elif attribute.data_type == "integer": - row.prop(attribute, "int_value", text=attribute.name) - elif attribute.data_type == "float": - row.prop(attribute, "float_value", text=attribute.name) - elif attribute.data_type == "enum": - row.prop(attribute, "enum_value", text=attribute.name) - if attribute.is_optional: - row.prop(attribute, "is_null", icon="RADIOBUT_OFF" if attribute.is_null else "RADIOBUT_ON", text="") + elif self.props.active_resource_id and self.props.editing_resource_type == "USAGE": + self.draw_editable_resource_time_attributes_ui() + + def draw_editable_resource_attributes_ui(self): + blenderbim.bim.helper.draw_attributes(self.props.resource_attributes, self.layout) + + def draw_editable_resource_time_attributes_ui(self): + blenderbim.bim.helper.draw_attributes(self.props.resource_time_attributes, self.layout) class BIM_UL_resources(UIList): @@ -124,9 +117,12 @@ class BIM_UL_resources(UIList): op = row.operator("bim.assign_resource", text="", icon="KEYFRAME", emboss=False) op.resource = item.ifc_definition_id - if props.active_resource_id == item.ifc_definition_id: + if props.active_resource_id == item.ifc_definition_id and props.editing_resource_type == "ATTRIBUTES": row.operator("bim.edit_resource", text="", icon="CHECKMARK") row.operator("bim.disable_editing_resource", text="", icon="CANCEL") + elif props.active_resource_id == item.ifc_definition_id and props.editing_resource_type == "USAGE": + row.operator("bim.edit_resource_time", text="", icon="CHECKMARK") + row.operator("bim.disable_editing_resource_time", text="", icon="CANCEL") elif props.active_resource_id: row.operator("bim.add_resource", text="", icon="ADD").resource = item.ifc_definition_id row.operator("bim.remove_resource", text="", icon="X").resource = item.ifc_definition_id @@ -134,5 +130,5 @@ class BIM_UL_resources(UIList): row.operator( "bim.enable_editing_resource", text="", icon="GREASEPENCIL" ).resource = item.ifc_definition_id - + row.operator("bim.enable_editing_resource_time", text="", icon="TIME").resource = item.ifc_definition_id row.operator("bim.remove_resource", text="", icon="X").resource = item.ifc_definition_id diff --git a/src/blenderbim/blenderbim/bim/module/sequence/operator.py b/src/blenderbim/blenderbim/bim/module/sequence/operator.py index 583fcf2e5d..c66726e4e4 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/operator.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/operator.py @@ -498,7 +498,7 @@ class RemoveTask(bpy.types.Operator): class EnableEditingTaskTime(bpy.types.Operator): bl_idname = "bim.enable_editing_task_time" - bl_label = "Enable Editing Task" + bl_label = "Enable Editing Task Time" bl_options = {"REGISTER", "UNDO"} task: bpy.props.IntProperty() diff --git a/src/blenderbim/blenderbim/bim/module/sequence/prop.py b/src/blenderbim/blenderbim/bim/module/sequence/prop.py index 348306e66c..e7a205f8a5 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/prop.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/prop.py @@ -282,7 +282,7 @@ class BIMWorkScheduleProperties(PropertyGroup): ], name="Special Columns", ) - active_task_time_id: IntProperty(name="Active Task Id") + active_task_time_id: IntProperty(name="Active Task Time Id") task_time_attributes: CollectionProperty(name="Task Time Attributes", type=Attribute) contracted_tasks: StringProperty(name="Contracted Task Items", default="[]") is_task_update_enabled: BoolProperty(name="Is Task Update Enabled", default=True) diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource_time.py b/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource_time.py new file mode 100644 index 0000000000..fa2553b723 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource_time.py @@ -0,0 +1,15 @@ +import ifcopenshell.util.date + +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = { + "resource": None, + } + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + resource_time = self.file.create_entity("IfcResourceTime") + self.settings["resource"].Usage = resource_time + return resource_time diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/data.py b/src/ifcopenshell-python/ifcopenshell/api/resource/data.py index af068a88a4..99a989ccec 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/data.py @@ -1,11 +1,13 @@ class Data: is_loaded = False resources = {} + resource_times = {} @classmethod def purge(cls): cls.is_loaded = False cls.resources = {} + cls.resource_times = {} @classmethod def load(cls, file): @@ -13,6 +15,7 @@ class Data: if not cls._file: return cls.load_resources() + cls.load_resource_times() cls.is_loaded=True @classmethod @@ -31,4 +34,20 @@ class Data: for rel in resource.ResourceOf: [data["ResourceOf"].append(o.id()) for o in rel.RelatedObjects] data["HasContext"] = resource.HasContext[0].RelatingContext.id() if resource.HasContext else None + if resource.Usage: + data["Usage"] = data["Usage"].id() cls.resources[resource.id()] = data + + @classmethod + def load_resource_times(cls): + cls.resource_times = {} + for resource_time in cls._file.by_type("IfcResourceTime"): + data = resource_time.get_info() + for key, value in data.items(): + if not value: + continue + if "Start" in key or "Finish" in key or key == "StatusTime": + data[key] = ifcopenshell.util.date.ifc2datetime(value) + elif "Work" in key or key =="LevelingDelay": + data[key] = ifcopenshell.util.date.ifc2datetime(value) + cls.resource_times[resource_time.id()] = data diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py new file mode 100644 index 0000000000..9a959f3f58 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py @@ -0,0 +1,36 @@ +import datetime +import ifcopenshell.util.date + + +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {"resource_time": None, "attributes": {}} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + self.resource = self.get_resource() + + # If the user specifies both an end date and a duration, the duration takes priority + if ( + "ScheduleWork" in self.settings["attributes"].keys() + and "ScheduleFinish" in self.settings["attributes"].keys() + ): + del self.settings["attributes"]["ScheduleFinish"] + if ( + "ActualWork" in self.settings["attributes"].keys() + and "ActualFinish" in self.settings["attributes"].keys() + ): + del self.settings["attributes"]["ActualFinish"] + + for name, value in self.settings["attributes"].items(): + if value: + if "Start" in name or "Finish" in name or name == "StatusTime": + value = ifcopenshell.util.date.datetime2ifc(value, "IfcDateTime") + elif name == "ScheduleWork" or name == "ActualWork" or name == "RemainingTime": + value = ifcopenshell.util.date.datetime2ifc(value, "IfcDuration") + setattr(self.settings["resource_time"], name, value) + + def get_resource(self): + return [e for e in self.file.get_inverse(self.settings["resource_time"]) if e.is_a("IfcResource")][0] From 1d42ce04eb96efd3330695cecfaa8d7b9f701c08 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 10 Aug 2021 10:55:01 +1000 Subject: [PATCH 163/168] Fix bug where editing a schedule finish date by itself wouldn't work --- src/ifcopenshell-python/ifcopenshell/api/resource/data.py | 4 ++++ .../ifcopenshell/api/resource/edit_resource_time.py | 4 ++-- .../ifcopenshell/api/sequence/edit_task_time.py | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/data.py b/src/ifcopenshell-python/ifcopenshell/api/resource/data.py index 99a989ccec..b917e18920 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/data.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/data.py @@ -1,3 +1,7 @@ +import ifcopenshell +import ifcopenshell.util.date + + class Data: is_loaded = False resources = {} diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py index 9a959f3f58..b56d8c2947 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py @@ -14,12 +14,12 @@ class Usecase: # If the user specifies both an end date and a duration, the duration takes priority if ( - "ScheduleWork" in self.settings["attributes"].keys() + self.settings["attributes"].get("ScheduleWork", None) and "ScheduleFinish" in self.settings["attributes"].keys() ): del self.settings["attributes"]["ScheduleFinish"] if ( - "ActualWork" in self.settings["attributes"].keys() + self.settings["attributes"].get("ActualWork", None) and "ActualFinish" in self.settings["attributes"].keys() ): del self.settings["attributes"]["ActualFinish"] diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task_time.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task_time.py index f332265eb9..9204323477 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task_time.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task_time.py @@ -16,12 +16,12 @@ class Usecase: # If the user specifies both an end date and a duration, the duration takes priority if ( - "ScheduleDuration" in self.settings["attributes"].keys() + self.settings["attributes"].get("ScheduleDuration", None) and "ScheduleFinish" in self.settings["attributes"].keys() ): del self.settings["attributes"]["ScheduleFinish"] if ( - "ActualDuration" in self.settings["attributes"].keys() + self.settings["attributes"].get("ActualDuration", None) and "ActualFinish" in self.settings["attributes"].keys() ): del self.settings["attributes"]["ActualFinish"] From f393c5f1d2d91ffec7a415c243b237b6e7c2555b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 10 Aug 2021 11:48:38 +1000 Subject: [PATCH 164/168] Copying an object / class now also copies pset and qtos --- .../ifcopenshell/api/root/copy_class.py | 49 ++++++++++--------- .../ifcopenshell/util/element.py | 5 +- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/root/copy_class.py b/src/ifcopenshell-python/ifcopenshell/api/root/copy_class.py index 9300ebd0e6..74a7084168 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/root/copy_class.py +++ b/src/ifcopenshell-python/ifcopenshell/api/root/copy_class.py @@ -1,4 +1,5 @@ import ifcopenshell +import ifcopenshell.util.element class Usecase: @@ -9,29 +10,33 @@ class Usecase: self.settings[key] = value def execute(self): - result = self.file.create_entity(self.settings["product"].is_a()) self.schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(self.file.schema) - self.copy_attributes(self.settings["product"], result) - for inverse in self.file.get_inverse(self.settings["product"]): - for i, value in enumerate(inverse): - if value == self.settings["product"]: - new_inverse = self.file.create_entity(inverse.is_a()) - self.copy_attributes(inverse, new_inverse) - new_inverse[i] = result - elif isinstance(value, (tuple, list)) and self.settings["product"] in value: - new_value = list(value) - new_value.append(result) - inverse[i] = new_value - if result.is_a("IfcProduct"): - result.Representation = None - elif result.is_a("IfcTypeProduct"): - result.RepresentationMaps = None + result = ifcopenshell.util.element.copy(self.file, self.settings["product"]) + self.copy_indirect_attributes(self.settings["product"], result) + # Copying representations is too hard, so for now we just don't do it. + self.remove_representations(result) return result - def copy_attributes(self, from_element, to_element): - declaration = self.schema.declaration_by_name(from_element.is_a()) - for attribute in declaration.all_attributes(): - if attribute.name() == "GlobalId": - setattr(to_element, attribute.name(), ifcopenshell.guid.new()) + def copy_indirect_attributes(self, from_element, to_element): + for inverse in self.file.get_inverse(from_element): + if inverse.is_a("IfcRelDefinesByProperties"): + inverse = ifcopenshell.util.element.copy(self.file, inverse) + inverse.RelatedObjects = [to_element] + pset = ifcopenshell.util.element.copy_deep(self.file, inverse.RelatingPropertyDefinition) + inverse.RelatingPropertyDefinition = pset else: - setattr(to_element, attribute.name(), getattr(from_element, attribute.name())) + # TODO: Consider whether this general approach is good or not. Maybe it isn't. + for i, value in enumerate(inverse): + if value == from_element: + new_inverse = ifcopenshell.util.element.copy(self.file, inverse) + new_inverse[i] = to_element + elif isinstance(value, (tuple, list)) and from_element in value: + new_value = list(value) + new_value.append(to_element) + inverse[i] = new_value + + def remove_representations(self, element): + if element.is_a("IfcProduct"): + element.Representation = None + elif element.is_a("IfcTypeProduct"): + element.RepresentationMaps = None diff --git a/src/ifcopenshell-python/ifcopenshell/util/element.py b/src/ifcopenshell-python/ifcopenshell/util/element.py index 743c6a102c..c7d13cf8fb 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/element.py +++ b/src/ifcopenshell-python/ifcopenshell/util/element.py @@ -117,7 +117,10 @@ def copy(ifc_file, element): for i, attribute in enumerate(element): if attribute is None: continue - new[i] = attribute + if new.attribute_name(i) == "GlobalId": + new[i] = ifcopenshell.guid.new() + else: + new[i] = attribute return new From ebd84a662e6ad43d5cccd93c4d5e3c08b72894d0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 10 Aug 2021 12:01:29 +1000 Subject: [PATCH 165/168] Updating model quantities now auto refreshes parametric quantities in cost schedules --- src/blenderbim/blenderbim/bim/export_ifc.py | 11 ++++------- src/blenderbim/blenderbim/bim/module/pset/operator.py | 2 ++ src/blenderbim/blenderbim/bim/operator.py | 2 ++ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/export_ifc.py b/src/blenderbim/blenderbim/bim/export_ifc.py index 4e9f75f83b..7b849b6fc3 100644 --- a/src/blenderbim/blenderbim/bim/export_ifc.py +++ b/src/blenderbim/blenderbim/bim/export_ifc.py @@ -5,12 +5,11 @@ import numpy as np import datetime import zipfile import tempfile -import ifcopenshell -import ifcopenshell.util.placement -import ifcopenshell.api -from ifcopenshell.api.spatial.data import Data as SpatialData -from blenderbim.bim.ifc import IfcStore import addon_utils +import ifcopenshell +import ifcopenshell.api +import ifcopenshell.util.placement +from blenderbim.bim.ifc import IfcStore class IfcExporter: @@ -77,8 +76,6 @@ class IfcExporter: if self.should_delete(obj): to_delete.append(ifc_definition_id) - SpatialData.purge() - for ifc_definition_id in to_delete: product = self.file.by_id(ifc_definition_id) IfcStore.unlink_element(product) diff --git a/src/blenderbim/blenderbim/bim/module/pset/operator.py b/src/blenderbim/blenderbim/bim/module/pset/operator.py index 58ec1d64fd..869af7db35 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/operator.py +++ b/src/blenderbim/blenderbim/bim/module/pset/operator.py @@ -7,6 +7,7 @@ import ifcopenshell.util.attribute import blenderbim.bim.schema from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.pset.data import Data +from ifcopenshell.api.cost.data import Data as CostData from blenderbim.bim.module.pset.qto_calculator import QtoCalculator @@ -211,6 +212,7 @@ class EditPset(bpy.types.Operator): "properties": properties, }, ) + CostData.purge() Data.load(IfcStore.get_file(), oprops.ifc_definition_id) bpy.ops.bim.disable_pset_editing(obj=self.obj, obj_type=self.obj_type) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py index 506d805a9c..7278897ab8 100644 --- a/src/blenderbim/blenderbim/bim/operator.py +++ b/src/blenderbim/blenderbim/bim/operator.py @@ -6,6 +6,7 @@ import tempfile import logging import webbrowser import ifcopenshell +import blenderbim.bim.handler from . import export_ifc from . import import_ifc from . import schema @@ -77,6 +78,7 @@ class ExportIFC(bpy.types.Operator): scene.BIMProperties.ifc_file = output_file if bpy.data.is_saved and bpy.data.is_dirty and bpy.data.filepath: bpy.ops.wm.save_mainfile(filepath=bpy.data.filepath) + blenderbim.bim.handler.purge_module_data() return {"FINISHED"} From 538029f396721cb952590f9eda63e29368f2cc44 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 10 Aug 2021 12:35:07 +1000 Subject: [PATCH 166/168] Fix bug in work schedule cascading where some cascades wouldn't work and non-working dates would lead to an infinite recursion --- .../blenderbim/bim/module/sequence/prop.py | 7 +++---- .../ifcopenshell/api/sequence/cascade_schedule.py | 12 ++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/sequence/prop.py b/src/blenderbim/blenderbim/bim/module/sequence/prop.py index e7a205f8a5..556878e411 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/prop.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/prop.py @@ -117,7 +117,6 @@ def updateTaskTimeDateTime(self, context, startfinish): return "-" return time.strftime("%d/%m/%y") - startfinish_key = "Schedule" + startfinish.capitalize() startfinish_value = getattr(self, startfinish) if startfinish_value == "-": @@ -141,6 +140,7 @@ def updateTaskTimeDateTime(self, context, startfinish): task_time = ifcopenshell.api.run("sequence.add_task_time", self.file, task=task) Data.load(IfcStore.get_file()) + startfinish_key = "Schedule" + startfinish.capitalize() if Data.task_times[task_time.id()][startfinish_key] == startfinish_datetime: canonical_startfinish_value = canonicalise_time(startfinish_datetime) if startfinish_value != canonical_startfinish_value: @@ -154,10 +154,9 @@ def updateTaskTimeDateTime(self, context, startfinish): ) Data.load(IfcStore.get_file()) bpy.ops.bim.load_task_properties() - setattr(self, startfinish, canonicalise_time(startfinish_datetime)) -def updateTaskduration(self, context): +def updateTaskDuration(self, context): props = context.scene.BIMWorkScheduleProperties if not props.is_task_update_enabled: return @@ -224,7 +223,7 @@ class Task(PropertyGroup): is_selected: BoolProperty(name="Is Selected") is_expanded: BoolProperty(name="Is Expanded") level_index: IntProperty(name="Level Index") - duration: StringProperty(name="Duration", update=updateTaskduration) + duration: StringProperty(name="Duration", update=updateTaskDuration) start: StringProperty(name="Start", update=updateTaskTimeStart) finish: StringProperty(name="Finish", update=updateTaskTimeFinish) calendar: StringProperty(name="Calendar") diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/cascade_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/cascade_schedule.py index 1efc2aef3f..bbe679bbf3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/cascade_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/cascade_schedule.py @@ -12,9 +12,9 @@ class Usecase: def execute(self): self.calendar_cache = {} - self.cascade_task(self.settings["task"]) + self.cascade_task(self.settings["task"], is_first_task=True) - def cascade_task(self, task): + def cascade_task(self, task, is_first_task=False): if not task.TaskTime: return @@ -88,13 +88,13 @@ class Usecase: ) if potential_finish > finish: start_ifc = ifcopenshell.util.date.datetime2ifc(start, "IfcDateTime") - if task.TaskTime.ScheduleStart == start_ifc: + if task.TaskTime.ScheduleStart == start_ifc and not is_first_task: return task.TaskTime.ScheduleStart = start_ifc task.TaskTime.ScheduleFinish = ifcopenshell.util.date.datetime2ifc(potential_finish, "IfcDateTime") else: finish_ifc = ifcopenshell.util.date.datetime2ifc(finish, "IfcDateTime") - if task.TaskTime.ScheduleFinish == finish_ifc: + if task.TaskTime.ScheduleFinish == finish_ifc and not is_first_task: return task.TaskTime.ScheduleFinish = finish_ifc task.TaskTime.ScheduleStart = ifcopenshell.util.date.datetime2ifc( @@ -109,7 +109,7 @@ class Usecase: elif finishes: finish = max(finishes) finish_ifc = ifcopenshell.util.date.datetime2ifc(finish, "IfcDateTime") - if task.TaskTime.ScheduleFinish == finish_ifc: + if task.TaskTime.ScheduleFinish == finish_ifc and not is_first_task: return task.TaskTime.ScheduleFinish = finish_ifc task.TaskTime.ScheduleStart = ifcopenshell.util.date.datetime2ifc( @@ -124,7 +124,7 @@ class Usecase: elif starts: start = max(starts) start_ifc = ifcopenshell.util.date.datetime2ifc(start, "IfcDateTime") - if task.TaskTime.ScheduleStart == start_ifc: + if task.TaskTime.ScheduleStart == start_ifc and not is_first_task: return task.TaskTime.ScheduleStart = start_ifc task.TaskTime.ScheduleFinish = ifcopenshell.util.date.datetime2ifc( From ab38e6bf7cacc34beac7f42dfd18f9a63491b422 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 10 Aug 2021 17:35:18 +1000 Subject: [PATCH 167/168] You can now add and edit monetary units, and basic editing of other unit types. --- .../blenderbim/bim/module/drawing/operator.py | 4 +- .../blenderbim/bim/module/root/prop.py | 15 +--- .../blenderbim/bim/module/unit/__init__.py | 4 + .../blenderbim/bim/module/unit/operator.py | 75 ++++++++++++++++++- .../blenderbim/bim/module/unit/prop.py | 23 ++++++ .../blenderbim/bim/module/unit/ui.py | 48 +++++++++--- src/ifc5d/ifc5d/csv2ifc.py | 4 +- .../ifcopenshell/api/cost/edit_cost_value.py | 2 +- .../api/unit/add_monetary_unit.py | 9 +++ .../ifcopenshell/api/unit/assign_unit.py | 53 ++++++++----- .../api/unit/edit_derived_unit.py | 10 +++ .../api/unit/edit_monetary_unit.py | 10 +++ .../ifcopenshell/api/unit/edit_named_unit.py | 10 +++ .../ifcopenshell/util/schema.py | 11 +++ 14 files changed, 230 insertions(+), 48 deletions(-) create mode 100644 src/ifcopenshell-python/ifcopenshell/api/unit/add_monetary_unit.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/unit/edit_derived_unit.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/unit/edit_monetary_unit.py create mode 100644 src/ifcopenshell-python/ifcopenshell/api/unit/edit_named_unit.py diff --git a/src/blenderbim/blenderbim/bim/module/drawing/operator.py b/src/blenderbim/blenderbim/bim/module/drawing/operator.py index ee6ef0303d..54181dff45 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/operator.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/operator.py @@ -236,7 +236,7 @@ class CreateDrawing(bpy.types.Operator): return svg_path # This is a work in progress. See #1153 and #1564. # Switch from old to new if you are testing v0.7.0 - self.generate_linework_old(svg_path) + self.generate_linework_old(context, svg_path) # self.generate_linework_new(svg_path) return svg_path @@ -266,7 +266,7 @@ class CreateDrawing(bpy.types.Operator): with open(svg_path, "w") as svg: svg.write(buffer.get_value()) - def generate_linework_old(self, svg_path): + def generate_linework_old(self, context, svg_path): ifcconvert_path = os.path.join(cwd, "..", "..", "..", "libs", "IfcConvert") subprocess.run( [ diff --git a/src/blenderbim/blenderbim/bim/module/root/prop.py b/src/blenderbim/blenderbim/bim/module/root/prop.py index 80ba2a20e4..b79a2a94ea 100644 --- a/src/blenderbim/blenderbim/bim/module/root/prop.py +++ b/src/blenderbim/blenderbim/bim/module/root/prop.py @@ -1,4 +1,6 @@ import bpy +import ifcopenshell +import ifcopenshell.util.schema from blenderbim.bim.ifc import IfcStore from bpy.types import PropertyGroup from bpy.props import ( @@ -82,17 +84,8 @@ def getIfcClasses(self, context): file = IfcStore.get_file() if len(classes_enum) < 1 and file: declaration = IfcStore.get_schema().declaration_by_name(context.scene.BIMRootProperties.ifc_product) - - def get_classes(declaration): - results = [] - if not declaration.is_abstract(): - results.append(declaration.name()) - for subtype in declaration.subtypes(): - results.extend(get_classes(subtype)) - return results - - classes = get_classes(declaration) - classes_enum.extend([(c, c, "") for c in sorted(classes)]) + declarations = ifcopenshell.util.schema.get_subtypes(declaration) + classes_enum.extend([(c, c, "") for c in sorted([d.name() for d in declarations])]) return classes_enum diff --git a/src/blenderbim/blenderbim/bim/module/unit/__init__.py b/src/blenderbim/blenderbim/bim/module/unit/__init__.py index 03a4a4e873..f4a0f265ec 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/unit/__init__.py @@ -6,6 +6,10 @@ classes = ( operator.LoadUnits, operator.DisableUnitEditingUI, operator.RemoveUnit, + operator.AddMonetaryUnit, + operator.EnableEditingUnit, + operator.DisableEditingUnit, + operator.EditUnit, prop.Unit, prop.BIMUnitProperties, ui.BIM_PT_units, diff --git a/src/blenderbim/blenderbim/bim/module/unit/operator.py b/src/blenderbim/blenderbim/bim/module/unit/operator.py index baae5ffab9..78c738e2b9 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/operator.py +++ b/src/blenderbim/blenderbim/bim/module/unit/operator.py @@ -1,5 +1,6 @@ import bpy import ifcopenshell.api +import blenderbim.bim.helper from blenderbim.bim.ifc import IfcStore from ifcopenshell.api.unit.data import Data @@ -78,6 +79,8 @@ class LoadUnits(bpy.types.Operator): unit_type = unit.get("UserDefinedType", None) if not unit_type: unit_type = unit.get("UnitType", None) + if unit["type"] == "IfcMonetaryUnit": + unit_type = "CURRENCY" new = props.units.add() new.ifc_definition_id = ifc_definition_id @@ -86,7 +89,7 @@ class LoadUnits(bpy.types.Operator): new.icon = icon props.is_editing = True - # bpy.ops.bim.disable_editing_unit() + bpy.ops.bim.disable_editing_unit() return {"FINISHED"} @@ -116,3 +119,73 @@ class RemoveUnit(bpy.types.Operator): Data.load(self.file) bpy.ops.bim.load_units() return {"FINISHED"} + + +class AddMonetaryUnit(bpy.types.Operator): + bl_idname = "bim.add_monetary_unit" + bl_label = "Add Monetary Unit" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + props = context.scene.BIMUnitProperties + self.file = IfcStore.get_file() + unit = ifcopenshell.api.run("unit.add_monetary_unit", self.file) + ifcopenshell.api.run("unit.assign_unit", self.file, units=[unit]) + Data.load(self.file) + bpy.ops.bim.load_units() + return {"FINISHED"} + + +class EnableEditingUnit(bpy.types.Operator): + bl_idname = "bim.enable_editing_unit" + bl_label = "Enable Editing Unit" + bl_options = {"REGISTER", "UNDO"} + unit: bpy.props.IntProperty() + + def execute(self, context): + props = context.scene.BIMUnitProperties + while len(props.unit_attributes) > 0: + props.unit_attributes.remove(0) + + data = Data.units[self.unit] + + blenderbim.bim.helper.import_attributes(data["type"], props.unit_attributes, data) + props.active_unit_id = self.unit + return {"FINISHED"} + + +class DisableEditingUnit(bpy.types.Operator): + bl_idname = "bim.disable_editing_unit" + bl_label = "Disable Editing Unit" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + context.scene.BIMUnitProperties.active_unit_id = 0 + return {"FINISHED"} + + +class EditUnit(bpy.types.Operator): + bl_idname = "bim.edit_unit" + bl_label = "Edit Unit" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + return IfcStore.execute_ifc_operator(self, context) + + def _execute(self, context): + props = context.scene.BIMUnitProperties + attributes = blenderbim.bim.helper.export_attributes(props.unit_attributes) + self.file = IfcStore.get_file() + unit = self.file.by_id(props.active_unit_id) + if unit.is_a("IfcMonetaryUnit"): + ifcopenshell.api.run("unit.edit_monetary_unit", self.file, **{"unit": unit, "attributes": attributes}) + elif unit.is_a("IfcDerivedUnit"): + ifcopenshell.api.run("unit.edit_derived_unit", self.file, **{"unit": unit, "attributes": attributes}) + elif unit.is_a("IfcNamedUnit"): + ifcopenshell.api.run("unit.edit_named_unit", self.file, **{"unit": unit, "attributes": attributes}) + Data.load(IfcStore.get_file()) + bpy.ops.bim.load_units() + return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/unit/prop.py b/src/blenderbim/blenderbim/bim/module/unit/prop.py index df960f47aa..c43f2ec833 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/prop.py +++ b/src/blenderbim/blenderbim/bim/module/unit/prop.py @@ -1,4 +1,7 @@ import bpy +import ifcopenshell +import ifcopenshell.util.schema +from blenderbim.bim.ifc import IfcStore from blenderbim.bim.prop import StrProperty, Attribute from bpy.types import PropertyGroup from bpy.props import ( @@ -13,6 +16,23 @@ from bpy.props import ( ) +unitclasses_enum = [] + + +def purge(): + global unitclasses_enum + unitclasses_enum = [] + + +def getUnitClasses(self, context): + global unitclasses_enum + if not len(unitclasses_enum) and IfcStore.get_file(): + declarations = ifcopenshell.util.schema.get_subtypes(IfcStore.get_schema().declaration_by_name("IfcNamedUnit")) + unitclasses_enum.extend([(c, c, "") for c in sorted([d.name() for d in declarations])]) + unitclasses_enum.extend([("IfcDerivedUnit", "IfcDerivedUnit", ""), ("IfcMonetaryUnit", "IfcMonetaryUnit", "")]) + return unitclasses_enum + + class Unit(PropertyGroup): name: StringProperty(name="Name") unit_type: StringProperty(name="Unit Type") @@ -24,3 +44,6 @@ class BIMUnitProperties(PropertyGroup): is_editing: BoolProperty(name="Is Editing") units: CollectionProperty(name="Units", type=Unit) active_unit_index: IntProperty(name="Active Unit Index") + active_unit_id: IntProperty(name="Active Unit Id") + unit_classes: EnumProperty(items=getUnitClasses, name="Unit Classes") + unit_attributes: CollectionProperty(name="Unit Attributes", type=Attribute) diff --git a/src/blenderbim/blenderbim/bim/module/unit/ui.py b/src/blenderbim/blenderbim/bim/module/unit/ui.py index 8e8ec3a3da..c61902b0d0 100644 --- a/src/blenderbim/blenderbim/bim/module/unit/ui.py +++ b/src/blenderbim/blenderbim/bim/module/unit/ui.py @@ -26,20 +26,37 @@ class BIM_PT_units(Panel): row = self.layout.row(align=True) row.label(text="{} Units Found".format(len(Data.unit_assignment)), icon="SNAP_GRID") if self.props.is_editing: - # row.operator("bim.add_unit", text="", icon="ADD") row.operator("bim.disable_unit_editing_ui", text="", icon="CANCEL") else: row.operator("bim.load_units", text="", icon="GREASEPENCIL") - if self.props.is_editing: - self.layout.template_list( - "BIM_UL_units", - "", - self.props, - "units", - self.props, - "active_unit_index", - ) + if not self.props.is_editing: + return + + row = self.layout.row(align=True) + row.prop(self.props, "unit_classes", text="") + + if self.props.unit_classes == "IfcMonetaryUnit": + row.operator("bim.add_monetary_unit", text="", icon="ADD") + elif self.props.unit_classes == "IfcDerivedUnit": + pass # TODO + else: + pass # TODO + + self.layout.template_list( + "BIM_UL_units", + "", + self.props, + "units", + self.props, + "active_unit_index", + ) + + if self.props.active_unit_id: + self.draw_editable_ui(context) + + def draw_editable_ui(self, context): + blenderbim.bim.helper.draw_attributes(self.props.unit_attributes, self.layout) class BIM_UL_units(UIList): @@ -49,4 +66,13 @@ class BIM_UL_units(UIList): row = layout.row(align=True) row.label(text=item.unit_type or "No Type", icon=item.icon) row.label(text=item.name or "Unnamed") - row.operator("bim.remove_unit", text="", icon="X").unit = item.ifc_definition_id + + if props.active_unit_id == item.ifc_definition_id: + row.operator("bim.edit_unit", text="", icon="CHECKMARK") + row.operator("bim.disable_editing_unit", text="", icon="CANCEL") + elif props.active_unit_id: + row.operator("bim.remove_unit", text="", icon="X").unit = item.ifc_definition_id + else: + op = row.operator("bim.enable_editing_unit", text="", icon="GREASEPENCIL") + op.unit = item.ifc_definition_id + row.operator("bim.remove_unit", text="", icon="X").unit = item.ifc_definition_id diff --git a/src/ifc5d/ifc5d/csv2ifc.py b/src/ifc5d/ifc5d/csv2ifc.py index 8e8b704d6e..0ecb5f5d54 100644 --- a/src/ifc5d/ifc5d/csv2ifc.py +++ b/src/ifc5d/ifc5d/csv2ifc.py @@ -106,11 +106,11 @@ class Csv2Ifc: elif self.has_categories: for category, value in cost_item["CostValues"].items(): cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) - cost_value.AppliedValue = self.file.createIfcReal(value) + cost_value.AppliedValue = self.file.createIfcMonetaryMeasure(value) cost_value.Category = category else: cost_value = ifcopenshell.api.run("cost.add_cost_value", self.file, parent=cost_item["ifc"]) - cost_value.AppliedValue = self.file.createIfcReal(cost_item["CostValues"]) + cost_value.AppliedValue = self.file.createIfcMonetaryMeasure(cost_item["CostValues"]) if cost_item["CostQuantities"]: quantity_class = ifcopenshell.util.unit.get_symbol_quantity_class(cost_item["CostQuantitiesUnit"]) diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value.py b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value.py index b80a9ff01e..219dc00e0b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value.py @@ -9,5 +9,5 @@ class Usecase: for name, value in self.settings["attributes"].items(): if name == "AppliedValue" and value is not None: # TODO: support all applied value select types - value = self.file.createIfcReal(value) + value = self.file.createIfcMonetaryMeasure(value) setattr(self.settings["cost_value"], name, value) diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/add_monetary_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/add_monetary_unit.py new file mode 100644 index 0000000000..6091496dd6 --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/add_monetary_unit.py @@ -0,0 +1,9 @@ +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {"currency": "DOLLARYDOO"} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + return self.file.create_entity("IfcMonetaryUnit", self.settings["currency"]) diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/assign_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/assign_unit.py index bedebcb3eb..8ae42c7f53 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/assign_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/assign_unit.py @@ -1,44 +1,55 @@ +import ifcopenshell import ifcopenshell.util.unit -class Usecase(): +class Usecase: def __init__(self, file, **settings): self.file = file self.settings = { - "length": { - "is_metric": True, - "raw": "MILLIMETERS" - }, - "area": { - "is_metric": True, - "raw": "METERS" - }, - "volume": { - "is_metric": True, - "raw": "METERS" - }, + "units": None, + "length": {"is_metric": True, "raw": "MILLIMETERS"}, + "area": {"is_metric": True, "raw": "METERS"}, + "volume": {"is_metric": True, "raw": "METERS"}, } for key, value in settings.items(): self.settings[key] = value def execute(self): - for unit_type, data in self.settings.items(): - if data["is_metric"]: - data["ifc"] = self.create_metric_unit(unit_type, data) - else: - data["ifc"] = self.create_imperial_unit(unit_type, data) + # We're going to refactor this to split unit creation and assignment + if self.settings["units"]: + units = self.settings["units"] + else: + del self.settings["units"] # TODO refactor + units = [] + for unit_type, data in self.settings.items(): + if data["is_metric"]: + units.append(self.create_metric_unit(unit_type, data)) + else: + units.append(self.create_imperial_unit(unit_type, data)) + + unit_assignment = self.get_unit_assignment() + self.assign_units(unit_assignment, units) + return unit_assignment + + def get_unit_assignment(self): unit_assignment = self.file.by_type("IfcUnitAssignment") if unit_assignment: unit_assignment = unit_assignment[0] # TODO: handle unit rewriting, which is complicated else: - unit_assignment = self.file.createIfcUnitAssignment([u["ifc"] for u in self.settings.values()]) + unit_assignment = self.file.createIfcUnitAssignment() if self.file.schema == "IFC2X3": self.file.by_type("IfcProject")[0].UnitsInContext = unit_assignment else: self.file.by_type("IfcContext")[0].UnitsInContext = unit_assignment return unit_assignment + def assign_units(self, unit_assignment, new_units): + units = set(unit_assignment.Units or []) + for unit in new_units: + units.add(unit) + unit_assignment.Units = list(units) + def create_metric_unit(self, unit_type, data): type_prefix = "" if unit_type == "area": @@ -72,7 +83,9 @@ class Usecase(): name = "{}inch".format(name_prefix + " " if name_prefix else "") elif data["raw"] == "FEET": name = "{}foot".format(name_prefix + " " if name_prefix else "") - value_component = self.file.create_entity("IfcReal", **{"wrappedValue": ifcopenshell.util.unit.si_conversions[name]}) + value_component = self.file.create_entity( + "IfcReal", **{"wrappedValue": ifcopenshell.util.unit.si_conversions[name]} + ) conversion_factor = self.file.createIfcMeasureWithUnit(value_component, si_unit) return self.file.createIfcConversionBasedUnit( dimensional_exponents, "{}UNIT".format(unit_type.upper()), name, conversion_factor diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_derived_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_derived_unit.py new file mode 100644 index 0000000000..65f8cc871e --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_derived_unit.py @@ -0,0 +1,10 @@ +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {"unit": None, "attributes": {}} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + for name, value in self.settings["attributes"].items(): + setattr(self.settings["unit"], name, value) diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_monetary_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_monetary_unit.py new file mode 100644 index 0000000000..65f8cc871e --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_monetary_unit.py @@ -0,0 +1,10 @@ +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {"unit": None, "attributes": {}} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + for name, value in self.settings["attributes"].items(): + setattr(self.settings["unit"], name, value) diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_named_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_named_unit.py new file mode 100644 index 0000000000..65f8cc871e --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_named_unit.py @@ -0,0 +1,10 @@ +class Usecase: + def __init__(self, file, **settings): + self.file = file + self.settings = {"unit": None, "attributes": {}} + for key, value in settings.items(): + self.settings[key] = value + + def execute(self): + for name, value in self.settings["attributes"].items(): + setattr(self.settings["unit"], name, value) diff --git a/src/ifcopenshell-python/ifcopenshell/util/schema.py b/src/ifcopenshell-python/ifcopenshell/util/schema.py index 407e912ba1..3d8c86c64e 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/schema.py +++ b/src/ifcopenshell-python/ifcopenshell/util/schema.py @@ -18,6 +18,17 @@ def is_a(entity, ifc_class): return False +def get_subtypes(entity): + def get_classes(declaration): + results = [] + if not declaration.is_abstract(): + results.append(declaration) + for subtype in declaration.subtypes(): + results.extend(get_classes(subtype)) + return results + return get_classes(entity) + + def reassign_class(ifc_file, element, new_class): try: new_element = ifc_file.create_entity(new_class) From cb95c934242357251db8d713920fc274b2ea6502 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 10 Aug 2021 18:56:15 +1000 Subject: [PATCH 168/168] You can now parametrically create profile / layer based objects of any type, no longer limited to walls, slabs, etc. --- .../blenderbim/bim/module/model/product.py | 21 ++++++++------- .../blenderbim/bim/module/model/profile.py | 26 +++++++------------ .../blenderbim/bim/module/model/slab.py | 12 +++++---- .../blenderbim/bim/module/model/wall.py | 13 +++++++--- src/blenderbim/generate_demo_library.py | 8 ++++++ .../ifcopenshell/util/type.py | 15 ++++++----- 6 files changed, 52 insertions(+), 43 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/product.py b/src/blenderbim/blenderbim/bim/module/model/product.py index 7374d66e67..0c0fb24f47 100644 --- a/src/blenderbim/blenderbim/bim/module/model/product.py +++ b/src/blenderbim/blenderbim/bim/module/model/product.py @@ -23,21 +23,22 @@ class AddTypeInstance(bpy.types.Operator): def _execute(self, context): tprops = context.scene.BIMTypeProperties ifc_class = self.ifc_class or tprops.ifc_class - relating_type = self.relating_type or tprops.relating_type - if not ifc_class or not relating_type: + relating_type_id = self.relating_type or tprops.relating_type + if not ifc_class or not relating_type_id: return {"FINISHED"} self.file = IfcStore.get_file() instance_class = ifcopenshell.util.type.get_applicable_entities(ifc_class, self.file.schema)[0] - if ifc_class == "IfcWallType": - obj = wall.DumbWallGenerator(self.file.by_id(int(relating_type))).generate() + relating_type = self.file.by_id(int(relating_type_id)) + material = ifcopenshell.util.element.get_material(relating_type) + if material.is_a("IfcMaterialProfileSet"): + obj = profile.DumbProfileGenerator(relating_type).generate() if obj: return {"FINISHED"} - elif ifc_class == "IfcSlabType": - obj = slab.DumbSlabGenerator(self.file.by_id(int(relating_type))).generate() - if obj: - return {"FINISHED"} - elif ifc_class in ["IfcColumnType", "IfcBeamType", "IfcMemberType"]: - obj = profile.DumbProfileGenerator(self.file.by_id(int(relating_type))).generate() + elif material.is_a("IfcMaterialLayerSet"): + if ifc_class in ["IfcSlabType", "IfcRoofType", "IfcRampType", "IfcPlateType"]: + obj = slab.DumbSlabGenerator(relating_type).generate() + else: + obj = wall.DumbWallGenerator(relating_type).generate() if obj: return {"FINISHED"} # A cube diff --git a/src/blenderbim/blenderbim/bim/module/model/profile.py b/src/blenderbim/blenderbim/bim/module/model/profile.py index 6de8a6a0c1..493d3db501 100644 --- a/src/blenderbim/blenderbim/bim/module/model/profile.py +++ b/src/blenderbim/blenderbim/bim/module/model/profile.py @@ -137,25 +137,17 @@ class DumbProfileGenerator: if self.collection_obj and self.collection_obj.BIMObjectProperties.ifc_definition_id: obj.location[2] = self.collection_obj.location[2] self.collection.objects.link(obj) - if self.relating_type.is_a("IfcColumnType"): - obj.name = "Column" - bpy.ops.bim.assign_class( - obj=obj.name, ifc_class="IfcColumn", predefined_type="COLUMN", should_add_representation=False - ) - elif self.relating_type.is_a("IfcBeamType"): - obj.name = "Beam" + + ifc_classes = ifcopenshell.util.type.get_applicable_entities(self.relating_type.is_a(), self.file.schema) + # Standard cases are deprecated, so let's cull them + ifc_class = [c for c in ifc_classes if "StandardCase" not in c][0] + obj.name = ifc_class[3:] + bpy.ops.bim.assign_class(obj=obj.name, ifc_class=ifc_class, should_add_representation=False) + + if self.relating_type.is_a() in ["IfcBeamType", "IfcMemberType"]: obj.rotation_euler[0] = math.pi / 2 obj.rotation_euler[2] = math.pi / 2 - bpy.ops.bim.assign_class( - obj=obj.name, ifc_class="IfcBeam", predefined_type="BEAM", should_add_representation=False - ) - elif self.relating_type.is_a("IfcMemberType"): - obj.name = "Member" - obj.rotation_euler[0] = math.pi / 2 - obj.rotation_euler[2] = math.pi / 2 - bpy.ops.bim.assign_class( - obj=obj.name, ifc_class="IfcMember", predefined_type="MEMBER", should_add_representation=False - ) + element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) bpy.ops.bim.assign_type(relating_type=self.relating_type.id(), related_object=obj.name) profile_set_usage = ifcopenshell.util.element.get_material(element) diff --git a/src/blenderbim/blenderbim/bim/module/model/slab.py b/src/blenderbim/blenderbim/bim/module/model/slab.py index d716f0c0a8..b16b0b847b 100644 --- a/src/blenderbim/blenderbim/bim/module/model/slab.py +++ b/src/blenderbim/blenderbim/bim/module/model/slab.py @@ -211,8 +211,6 @@ class AddSlabOpening(bpy.types.Operator): if not slab_obj.BIMObjectProperties.ifc_definition_id: return {"FINISHED"} slab = IfcStore.get_file().by_id(slab_obj.BIMObjectProperties.ifc_definition_id) - if not slab.is_a("IfcSlab"): - return {"FINISHED"} local_location = slab_obj.matrix_world.inverted() @ context.scene.cursor.location raycast = slab_obj.closest_point_on_mesh(local_location, distance=0.01) if not raycast[0]: @@ -280,7 +278,12 @@ class DumbSlabGenerator: modifier.use_even_offset = True modifier.offset = 1 modifier.thickness = self.depth - obj.name = "Slab" + + ifc_classes = ifcopenshell.util.type.get_applicable_entities(self.relating_type.is_a(), self.file.schema) + # Standard cases are deprecated, so let's cull them + ifc_class = [c for c in ifc_classes if "StandardCase" not in c][0] + + obj.name = ifc_class[3:] obj.location = self.location if self.collection_obj and self.collection_obj.BIMObjectProperties.ifc_definition_id: obj.location[2] = self.collection_obj.location[2] - self.depth @@ -289,8 +292,7 @@ class DumbSlabGenerator: self.collection.objects.link(obj) bpy.ops.bim.assign_class( obj=obj.name, - ifc_class="IfcSlab", - predefined_type="FLOOR", + ifc_class=ifc_class, ifc_representation_class="IfcExtrudedAreaSolid/IfcArbitraryProfileDefWithVoids", ) bpy.ops.bim.assign_type(relating_type=self.relating_type.id(), related_object=obj.name) diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index c132a72339..340ecf7612 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -57,8 +57,6 @@ class AddWallOpening(bpy.types.Operator): if not wall_obj.BIMObjectProperties.ifc_definition_id: return {"FINISHED"} wall = IfcStore.get_file().by_id(wall_obj.BIMObjectProperties.ifc_definition_id) - if not wall.is_a("IfcWall"): - return {"FINISHED"} local_location = wall_obj.matrix_world.inverted() @ context.scene.cursor.location raycast = wall_obj.closest_point_on_mesh(local_location, distance=0.01) if not raycast[0]: @@ -773,17 +771,24 @@ class DumbWallGenerator: ] mesh = bpy.data.meshes.new(name="Wall") mesh.from_pydata(verts, [], faces) - obj = bpy.data.objects.new("Wall", mesh) + + ifc_classes = ifcopenshell.util.type.get_applicable_entities(self.relating_type.is_a(), self.file.schema) + # Standard cases are deprecated, so let's cull them + ifc_class = [c for c in ifc_classes if "StandardCase" not in c][0] + + obj = bpy.data.objects.new(ifc_class[3:], mesh) obj.location = self.location obj.rotation_euler[2] = self.rotation if self.collection_obj and self.collection_obj.BIMObjectProperties.ifc_definition_id: obj.location[2] = self.collection_obj.location[2] self.collection.objects.link(obj) + bpy.ops.bim.assign_class( obj=obj.name, - ifc_class="IfcWall", + ifc_class=ifc_class, ifc_representation_class="IfcExtrudedAreaSolid/IfcArbitraryClosedProfileDef", ) + bpy.ops.bim.assign_type(relating_type=self.relating_type.id(), related_object=obj.name) element = self.file.by_id(obj.BIMObjectProperties.ifc_definition_id) pset = ifcopenshell.api.run("pset.add_pset", self.file, product=element, name="EPset_Parametric") diff --git a/src/blenderbim/generate_demo_library.py b/src/blenderbim/generate_demo_library.py index 2b17a510b6..c76f4afcc4 100644 --- a/src/blenderbim/generate_demo_library.py +++ b/src/blenderbim/generate_demo_library.py @@ -17,6 +17,14 @@ class LibraryGenerator: self.create_layer_type("IfcWallType", "DEMO200", 0.2) self.create_layer_type("IfcWallType", "DEMO300", 0.3) + self.create_layer_type("IfcCoveringType", "DEMO20", 0.02) + self.create_layer_type("IfcRampType", "DEMO200", 0.2) + + profile = self.file.create_entity( + "IfcCircleProfileDef", ProfileType="AREA", Radius=0.3 + ) + self.create_profile_type("IfcPileType", "DEMO1", profile) + self.create_layer_type("IfcSlabType", "DEMO150", 0.2) self.create_layer_type("IfcSlabType", "DEMO250", 0.3) diff --git a/src/ifcopenshell-python/ifcopenshell/util/type.py b/src/ifcopenshell-python/ifcopenshell/util/type.py index 6a6e57703c..7999afc53a 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/type.py +++ b/src/ifcopenshell-python/ifcopenshell/util/type.py @@ -12,13 +12,14 @@ with open(os.path.join(cwd, "entity_to_type_map_2x3.json")) as f: with open(os.path.join(cwd, "entity_to_type_map_4.json")) as f: entity_to_type_map["IFC4"] = json.load(f) -type_to_entity_map["IFC2X3"] = { - value: [key] for key in entity_to_type_map["IFC2X3"] for value in entity_to_type_map["IFC2X3"][key] -} - -type_to_entity_map["IFC4"] = { - value: [key] for key in entity_to_type_map["IFC4"] for value in entity_to_type_map["IFC4"][key] -} +for schema in ["IFC2X3", "IFC4"]: + type_to_entity_map[schema] = {} + for element, element_types in entity_to_type_map[schema].items(): + for element_type in element_types: + type_to_entity_map[schema].setdefault(element_type, []).append(element) + # TODO: this method just fails for IFC2X3 because 2X3 type mapping is just so broken. + # Uncomment the following line to see how bad it is. + # print(type_to_entity_map[schema]) def get_applicable_types(ifc_class, schema="IFC4"):